1.读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个test1.txt文件中,如下所示: 姓名,科目,成绩 小红,语文,100 小红,英语,90 小红,数学,75 张明,语文,80 张明,英语,76 张明,数学,88 小江,语文,79 小江,数学,120 小江,英语,80 小李,英语,87 小李,语文,99 小李,数学,76 2.对数据框变量pd进行切片操作,分别获得小红、张明、小江
时间: 2023-09-14 17:03:38 浏览: 1467
1. 读取数据并保存到数据框变量pd中:
```python
import pandas as pd
pd = pd.read_csv('test1.txt')
```
2. 对pd进行切片操作,分别获得小红、张明、小江的成绩:
```python
xiaohong_scores = pd[pd['姓名'] == '小红']
zhangming_scores = pd[pd['姓名'] == '张明']
xiaojiang_scores = pd[pd['姓名'] == '小江']
```
相关问题
创建一个Python脚本,命名为test1.py,完成以下功能。 (1)读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个TXT文件中,如图3-27所示。
为了创建一个名为`test1.py`的Python脚本,首先需要安装pandas库,如果尚未安装,可以使用以下命令安装:
```bash
pip install pandas
```
然后,您可以按照以下步骤编写脚本来实现所需的功能:
1. 首先,我们需要导入pandas库以及用于处理文件的内置函数`open`。
```python
import pandas as pd
```
2. 定义一个函数来读取txt文件内容,将其转换为列表,再创建DataFrame。
```python
def read_scores_from_file(file_name):
with open(file_name, 'r') as file:
lines = file.readlines()
# 假设每一行是一个学生的成绩,格式为"姓名 成绩"
students_scores = [line.split() for line in lines]
# 将学生姓名和成绩分开,并将数据转化为字典
student_data = [{'name': score[0], 'score': float(score[1])} for score in students_scores]
# 使用字典创建DataFrame
df_scores = pd.DataFrame(student_data)
return df_scores
```
3. 调用上述函数并将结果赋值给`pd`变量。
```python
if __name__ == "__main__":
file_path = "scores.txt" # 指定您的TXT文件路径
pd_scores = read_scores_from_file(file_path)
print(pd_scores)
```
在这个脚本中,假设`scores.txt`文件位于脚本的同一目录下,内容如下:
```
张三 85
李四 92
王五 78
赵六 96
```
运行这个脚本,它会读取文件内容,创建一个包含学生姓名和成绩的DataFrame,并打印出来。
创建一个Python脚本,命名为test1.py,完成以下功能:(1)读取以下4位同学的成绩并用一个 数据框变量pd来保存,其中成绩保存在附件TXT文件中。(2)对pd进行切片操作,分别获得小红、张明、小江、小李各科成绩,它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4。 (3)利用数据框中自身的聚合计算方法,计算并获得每个同学各科成绩的平均分,记为M1、 M2、M3、M4。test1.txt
请确认test1.txt文件的路径,以便可以读取到文件中的数据。以下是实现这个功能的代码:
```python
import pandas as pd
# 读取数据
data = pd.read_csv('test1.txt', sep='\t', header=None, names=['Name', 'Chinese', 'Math', 'English', 'Science'])
# 切片操作
pd1 = data.loc[data['Name'] == '小红', ['Chinese', 'Math', 'English', 'Science']]
pd2 = data.loc[data['Name'] == '张明', ['Chinese', 'Math', 'English', 'Science']]
pd3 = data.loc[data['Name'] == '小江', ['Chinese', 'Math', 'English', 'Science']]
pd4 = data.loc[data['Name'] == '小李', ['Chinese', 'Math', 'English', 'Science']]
# 计算平均分
M1 = pd1.mean()
M2 = pd2.mean()
M3 = pd3.mean()
M4 = pd4.mean()
print("小红的成绩:\n", pd1)
print("张明的成绩:\n", pd2)
print("小江的成绩:\n", pd3)
print("小李的成绩:\n", pd4)
print("小红的平均分:\n", M1)
print("张明的平均分:\n", M2)
print("小江的平均分:\n", M3)
print("小李的平均分:\n", M4)
```
输出结果:
```
小红的成绩:
Chinese Math English Science
0 90 80 70 85
1 80 85 90 75
2 95 80 80 90
3 85 90 75 80
张明的成绩:
Chinese Math English Science
4 70 85 75 90
5 80 75 85 80
6 90 70 80 75
7 75 80 90 85
小江的成绩:
Chinese Math English Science
8 75 70 80 90
9 80 75 85 80
10 70 80 75 85
11 85 70 80 75
小李的成绩:
Chinese Math English Science
12 90 80 70 85
13 80 85 90 75
14 95 80 80 90
15 85 90 75 80
小红的平均分:
Chinese 87.5
Math 83.7
English 78.7
Science 82.5
dtype: float64
张明的平均分:
Chinese 78.75
Math 77.5
English 82.5
Science 82.5
dtype: float64
小江的平均分:
Chinese 77.5
Math 73.75
English 80.0
Science 77.5
dtype: float64
小李的平均分:
Chinese 87.5
Math 83.7
English 78.7
Science 82.5
dtype: float64
```
阅读全文