说明
Pandas 中文教程修订中,欢迎加微信 sinbam 提供建议、纠错、催更。查看更新日志
对数据进行分组后,我们就可以收获果实了,我们给分组给定统计方法,最终得到分组聚合的结果。除了常见的数学统计方法,还可以使用 agg() 和 transform() 等函数进行操作。
分组统计方法
分组对象支持几乎所有的 df 的统计方法,见数学统计方法,这些方法会按组统计,最终输出 df 或者序列:
df.groupby('team').describe()
df.groupby('team').sum()
df.groupby('team').count() # 每组数量,不包括缺失值
df.groupby('team').max()
df.groupby('team').min()
df.groupby('team').size()
df.groupby('team').mean()
df.groupby('team').median()
df.groupby('team').std()
df.groupby('team').var()
grouped.corr()
grouped.sem()
grouped.prod()
grouped.cummax() # 每组的累计最大值
grouped.cumsum() # 累加
grouped.mad() # 平均绝对偏差
特别的有:
df.groupby('team').first() # 组内第一个
df.groupby('team').last() # 组内最后一个
df.groupby('team').ngroups # 5 分组数
df.groupby('team').ngroup() # 分组序号
# 库姆计数,按组对成员标记, 支持正排倒排
# 返回每个元素在所在组的序号的序列
grouped.cumcount(ascending=False)
给定分位,返回每组的分位值:
df = pd.DataFrame([
['a', 1], ['a', 2], ['a', 3],
['b', 1], ['b', 3], ['b', 5]
], columns=['key', 'val'])
df.groupby('key').quantil