1.读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个test1.txt文件中,如下所示: 姓名,科目,成绩 小红,语文,100 小红,英语,90 小红,数学,75 张明,语文,80 张明,英语,76 张明,数学,88 小江,语文,79 小江,数学,120 小江,英语,80 小李,英语,87 小李,语文,99 小李,数学,76 2.对数据框变量pd进行切片操作,分别获得小红、张明、小江、小李的各科成绩, 它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4。 3.利用数据框中自身的聚合计算方法,计算并获得每个同学各科成绩的平均分, 记为M1、M2、M3、M4,并返回其计算结果。
时间: 2023-09-16 08:11:06 浏览: 211
您可以使用以下代码实现您的需求:
```python
# 读取成绩数据并保存在数据框变量pd中
import pandas as pd
pd = pd.read_csv('test1.txt')
# 对数据框变量pd进行切片操作,获取各个同学的成绩
pd1 = pd.loc[pd['姓名'] == '小红']
pd2 = pd.loc[pd['姓名'] == '张明']
pd3 = pd.loc[pd['姓名'] == '小江']
pd4 = pd.loc[pd['姓名'] == '小李']
# 利用数据框中自身的聚合计算方法,计算每个同学各科成绩的平均分
M1 = pd1.groupby(['科目'])['成绩'].mean()
M2 = pd2.groupby(['科目'])['成绩'].mean()
M3 = pd3.groupby(['科目'])['成绩'].mean()
M4 = pd4.groupby(['科目'])['成绩'].mean()
```
解释一下代码:
1. 我们使用 `pd.read_csv` 方法读取 `test1.txt` 文件中的数据,并将其保存在数据框变量 `pd` 中。
2. 利用 `pd.loc` 方法对数据框变量 `pd` 进行切片操作,分别获取小红、张明、小江、小李的各科成绩,并保存在对应的数据框变量中。
3. 利用数据框中自身的聚合计算方法 `groupby` 和 `mean`,分别计算每个同学各科成绩的平均分,并保存在对应的变量中。
希望这个代码能够帮到您!
相关问题
创建一个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,并打印出来。
1.读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个test1.txt文件中,如下所示: 姓名,科目,成绩 小红,语文,100 小红,英语,90 小红,数学,75 张明,语文,80 张明,英语,76 张明,数学,88 小江,语文,79 小江,数学,120 小江,英语,80 小李,英语,87 小李,语文,99 小李,数学,76 2.对数据框变量pd进行切片操作,分别获得小红、张明、小江
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['姓名'] == '小江']
```
阅读全文
相关推荐















