【发布时间】:2020-06-18 04:11:44
【问题描述】:
假设我有以下数据:
from pandas import DataFrame
boxes = {'Students': ['Alice','Alice','Alice','Bob','Bob','Red','Red','Red','Red'],
'Subjects': ['Math','History','Economics','Economics','Math','Sociology','Ethics','History','Economics'],
'Grade': [100,75,85,95,100,85,75,78,82]
}
df = DataFrame(boxes, columns= ['Students','Subjects','Grade'])
我想知道Alice 和Red 各自的平均成绩和上课次数:
所以我想要的输出是
GPA Count
Students
Alice 86.67 3
Red 80.00 4
是否有任何内置的 pandas 函数可以执行这些操作?我意识到以下代码
g = df.groupby('Students')['Grade']
df1 = pd.concat([g.mean().round(2), g.count()], axis=1)
df1.columns = ['GPA', 'Count']
将为所有学生找到我想要的,但我希望能够为特定学生找到这些。
【问题讨论】:
标签: python python-3.x pandas group-by pandas-groupby