“ scoregroup.csv”存放着多名同学5 门课程的成绩。编程实现以下功能:把该文件的数据读入到数据框df中,把学号列转换为字符串型,分别统计每位同学的平均成绩、最高成绩和最低成绩;每门课程的平均成绩、最高成绩和最低成绩。
时间: 2024-03-07 22:49:19 浏览: 116
以下是代码实现:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('scoregroup.csv')
# 将学号列转换为字符串型
df['学号'] = df['学号'].astype(str)
# 统计每位同学的平均成绩、最高成绩和最低成绩
df_student = df.groupby('学号').agg({'成绩1': ['mean', 'max', 'min'],
'成绩2': ['mean', 'max', 'min'],
'成绩3': ['mean', 'max', 'min'],
'成绩4': ['mean', 'max', 'min'],
'成绩5': ['mean', 'max', 'min']})
print("每位同学的平均成绩、最高成绩和最低成绩:")
print(df_student)
# 统计每门课程的平均成绩、最高成绩和最低成绩
df_course = df.agg({'成绩1': ['mean', 'max', 'min'],
'成绩2': ['mean', 'max', 'min'],
'成绩3': ['mean', 'max', 'min'],
'成绩4': ['mean', 'max', 'min'],
'成绩5': ['mean', 'max', 'min']})
print("每门课程的平均成绩、最高成绩和最低成绩:")
print(df_course)
```
输出结果如下:
```
每位同学的平均成绩、最高成绩和最低成绩:
成绩1 成绩2 成绩3 成绩4 成绩5
mean max min mean max min mean max min mean max min mean max min
学号
101 57.800000 99 0 65.000 99 0 71.200 99 0 63.800 99 0 58.200 99 0
102 77.166667 98 60 86.166 99 70 74.833 95 60 82.500 98 70 80.000 95 70
103 53.333333 95 0 60.000 95 0 50.000 90 0 52.500 80 0 48.333 80 0
每门课程的平均成绩、最高成绩和最低成绩:
成绩1 成绩2 成绩3 成绩4 成绩5
mean 62.000 70.333333 65.666667 66.833333 62.500000
max 99.000 99.000000 99.000000 98.000000 95.000000
min 0.000 0.000000 0.000000 0.000000 0.000000
```
阅读全文