使用pivot_tabl计算平均分 总平均分
时间: 2023-09-20 09:08:37 浏览: 139
假设有一个名为`students`的DataFrame,其中包含列`name`、`subject`和`score`,可以使用`pivot_table`方法来计算每个学生每个科目的平均分和总平均分,示例代码如下:
```python
import pandas as pd
# 创建示例DataFrame
students = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'] * 2,
'subject': ['Math', 'Math', 'Math', 'Math', 'Math', 'Science', 'Science', 'Science', 'Science', 'Science'],
'score': [80, 90, 70, 85, 95, 70, 80, 75, 85, 90]
})
# 计算每个学生每个科目的平均分和总平均分
avg_scores = pd.pivot_table(students, values='score', index='name', columns='subject', aggfunc='mean')
avg_scores['Overall'] = avg_scores.mean(axis=1)
print(avg_scores)
```
输出结果如下:
```
subject Math Science Overall
name
Alice 80.0 70.0 75.000000
Bob 90.0 80.0 85.000000
Charlie 70.0 75.0 72.500000
David 85.0 85.0 85.000000
Emily 95.0 90.0 92.500000
```
其中,`values`参数指定需要计算的值,即分数;`index`参数指定按照哪一列进行分组,即按照学生姓名进行分组;`columns`参数指定按照哪一列进行列分组,即按照科目进行列分组;`aggfunc`参数指定如何进行聚合计算,这里选择计算平均值。最后,计算每个学生的总平均分,通过`mean`方法对每一行进行计算,将结果保存在名为`Overall`的列中。
阅读全文