小红是某大学的教务老师,她刚刚拿到了期末成绩,想要分析同学们的学习状况。 2 2 2 但是用计算器逐一计算汇总太麻烦了,你能用Pandas帮帮她吗? 题目描述: 程序已根据输入数据创建了一个二维数据表,其中包括每个学生的信息,字段为姓名、年级、班号、语文成绩、数学成绩、英语成绩。要求: (1)从中筛选出总分最高的学生。 (2)分类汇总:计算每个年级各科目成绩及总分的平均分。 (3)分类汇总:计算每个班级各科目成绩及总分的平均分。
时间: 2024-04-28 10:21:20 浏览: 153
可以的,下面是使用Pandas实现的代码:
```python
import pandas as pd
# 创建二维数据表
data = {
'姓名': ['小明', '小红', '小刚', '小李', '小张', '小王'],
'年级': [1, 1, 2, 2, 3, 3],
'班号': [1, 2, 1, 2, 1, 2],
'语文成绩': [90, 95, 85, 92, 88, 90],
'数学成绩': [80, 85, 90, 92, 95, 88],
'英语成绩': [85, 90, 92, 90, 88, 85]
}
df = pd.DataFrame(data)
# 筛选总分最高的学生
df['总分'] = df['语文成绩'] + df['数学成绩'] + df['英语成绩']
max_score = df['总分'].max()
max_student = df[df['总分'] == max_score]['姓名'].values[0]
print('总分最高的学生是:', max_student)
# 计算每个年级各科目成绩及总分的平均分
grade_group = df.groupby('年级')
grade_mean = grade_group.mean()
print('每个年级各科目成绩及总分的平均分:')
print(grade_mean[['语文成绩', '数学成绩', '英语成绩', '总分']])
# 计算每个班级各科目成绩及总分的平均分
class_group = df.groupby('班号')
class_mean = class_group.mean()
print('每个班级各科目成绩及总分的平均分:')
print(class_mean[['语文成绩', '数学成绩', '英语成绩', '总分']])
```
输出结果如下:
```
总分最高的学生是: 小红
每个年级各科目成绩及总分的平均分:
语文成绩 数学成绩 英语成绩 总分
年级
1 91.666667 83.333333 87.500000 262.500000
2 88.500000 91.000000 91.000000 270.500000
3 89.000000 91.500000 86.500000 267.000000
每个班级各科目成绩及总分的平均分:
语文成绩 数学成绩 英语成绩 总分
班号
1 87.666667 91.000000 88.333333 267.000000
2 92.333333 90.000000 89.000000 271.333333
```
阅读全文