我有一个数据框df,并使用其中的几列进行分组依据:
df[['col1', 'col2', 'col3', 'col4']].groupby(['col1', 'col2']).agg(['mean', 'count'])
通过以上方法,我获得了所需的表(数据框)。缺少的是额外的一列,该列包含每组中的行数大于该组的均值(平均值)。实际上,我想要这样的东西:
col1 col2 mean count above_Mean
A E 4 10 6
F 3 20 4
B G 7 30 15
我尝试了上面的return命令,除了上面给出的每组平均计数之外,它还给了我所有的东西。
df[['col1', 'col2', 'col3', 'col4']].groupby(['col1', 'col2']).agg(['mean', 'count'])
输出:
col1 col2 mean count above_Mean
A E 4 10 6
F 3 20 4
B G 7 30 15
答案 0 :(得分:1)
您还可以使用lambda
函数进行如下汇总:
df.groupby(['col1', 'col2']).agg(['mean', 'count',
lambda x: (x > x.mean()).sum()])