繁体   English   中英

Pandas groupby 和 agg by 条件

[英]Pandas groupby and agg by condition

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

上面的行Month对 dataframe 进行分组,并计算每个月的Status数。 有没有办法只获得Status=X的计数? 类似于下面的错误代码:

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

本质上,我想计算每个月有多少个StatusX

一条短途

(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM