如何计算每组的行数大于pandas group by中该组的平均行数?

时间:2018-12-26 17:13:00

标签: python pandas

我有一个数据框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

1 个答案:

答案 0 :(得分:1)

您还可以使用lambda函数进行如下汇总:

df.groupby(['col1', 'col2']).agg(['mean', 'count', 
                                  lambda x: (x > x.mean()).sum()])