python - Pandas groupby 和 agg 按条件
问题描述
df.groupby(['Month']).agg({'Status' : ['count']})
上面的行将数据框分组Month
并计算Status
每个月的数量。有没有办法只计算 where 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()
推荐阅读
- c - 在 libcurl 中,如何在重用连接时重置授权标头?
- php - 如何根据用户角色隐藏页面的一部分
- html - 当我编写外部 css 时,背景颜色不起作用,但如果我使用内联 css 或内部 css,bg 颜色工作正常
- node-ipc - 如何使用 node-ipc 观看服务器发送的没有消息类型的任何消息?
- list - Prolog,我想从列表中获取 2 个不同的值,并将所有其他值获取到另一个列表中
- python - raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 410: Gone
- docker - Net Core Docker 容器 API。无法使用 System.Security.Cryptography.CryptographicException 处提供的密码读取证书数据
- python - 尝试从 Django 视图中使用 win32com.client 获取 COM 对象时出现 com_error
- vue.js - vue router.beforeEach 在 safari 上不起作用
- php - 如何模拟模型->保存()?