首页 > 解决方案 > Pandas groupby 和 agg 按条件

问题描述

df.groupby(['Month']).agg({'Status' : ['count']})

上面的行将数据框分组Month并计算Status每个月的数量。有没有办法只计算 where Status=X?类似于下面的错误代码:

df.groupby(['Month']).agg({'Status' == 'X' : ['count']})

本质上,我想计算每个月Status有多少。X

标签: pythonpandasdataframeaggregate

解决方案


一条短途

(df.Status == 'X').groupby(df.Month).sum()

很长的路

df.where(df.Status == 'X').groupby('Month').Status.count()

推荐阅读