[英]Pandas groupby and agg by condition
df.groupby(['Month']).agg({'Status' : ['count']})
上面的行Month
对 dataframe 进行分组,并计算每个月的Status
数。 有没有办法只获得Status=X
的计数? 类似于下面的错误代码:
df.groupby(['Month']).agg({'Status' == 'X' : ['count']})
本质上,我想计算每个月有多少个Status
是X
一条短途
(df.Status == 'X').groupby(df.Month).sum()
很长的路
df.where(df.Status == 'X').groupby('Month').Status.count()
让我们做一些不同的事情
pd.crosstab(df.Month,df.Status)['X']
也可以使用lambda function
df.groupby('Month').agg(lambda x: (x=='X').sum())
或者
df.groupby('Month').Status.agg(lambda x: (x=='X').sum())
你做df.loc[df.Status=='X'].groupby(['Month']).agg({'Status': ['count']})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.