groupby将数据先按指定维度分组之后,再进行sum、mean等操作..
import pandas as pd
df = pd.DataFrame({
'学号':[1,2,3,4,5,1,2,3,4,5],
'科目':['数学','数学','数学','数学','数学','语文','语文','语文','语文','语文'],
'成绩':[90,82,74,52,80,71,93,83,80,63],
'小组':[1,1,1,2,2,1,1,1,2,2]
})
print(df.groupby('学号').sum()['成绩'])
# 学号
# 1 161
# 2 175
# 3 157
# 4 132
# 5 143
# Name: 成绩, dtype: int64
print(df.groupby('学号'))
# <pandas.core.groupby.DataFrameGroupBy object at 0x0000025AE25A4630>
print(type(df.groupby('学号').sum()))
# <class 'pandas.core.frame.DataFrame'>
print(type(df.groupby('学号').sum()['成绩']))
#<class 'pandas.core.series.Series'>
print(df.groupby('学号').sum()['成绩'].sort_values(ascending = False))
# 学号
# 2 175
# 1 161
# 3 157
# 5 143
# 4 132
# Name: 成绩, dtype: int64
#计算每个小组的学生平均成绩。
print(df.groupby('小组').mean()['成绩'])