python - Python Pandas groupby:A组与非A组?
问题描述
假设数据如下所示:
df = pd.DataFrame({'Group' : ['A', 'B', 'A', 'B', 'C'],
'Value' : [1, 4, 3, 2, 3]})
Group Value
0 A 1
1 B 4
2 A 3
3 B 2
4 C 3
通常,当按“组”分组并获得总和时,我会得到:
df.groupby(by="Group").agg(["sum"])
Group Value sum
A 4
B 6
C 3
有没有办法获得“A组”与“非A组”,比如:
df.groupby(by="Group A vs non-Group A").agg(["sum"])
Group Value sum
A 4
non-A 9
感谢大家!
解决方案
使用groupby
和replace
In [566]: df.groupby(
df.Group.eq('A').replace({True: 'A', False: 'non-A'})
)['Value'].sum().reset_index()
Out[566]:
Group Value
0 A 4
1 non-A 9
细节
In [567]: df.Group.eq('A').replace({True: 'A', False: 'non-A'})
Out[567]:
0 A
1 non-A
2 A
3 non-A
4 non-A
Name: Group, dtype: object
In [568]: df.groupby(df.Group.eq('A').replace({True: 'A', False: 'non-A'}))['Value'].sum()
Out[568]:
Group
A 4
non-A 9
Name: Value, dtype: int64
推荐阅读
- ansible - 使用 ansible awx 滚动升级
- python - DIScord bot 未加入语音频道,但没有错误消息
- python - 无法在屏幕上移动精灵
- javascript - 从 Google 表格重新格式化日期
- github - 您如何处理大型公司的 Prettier 设置?
- java - 在添加阻止列表之前扩展的 Java Executor 实现
- javascript - 循环遍历元素上的每个数据属性并从中创建变量
- python - 使用 x、y 和 z 数组绘制热图
- python - 在 python 3 中,如何注入一个函数以便后续导入工作?
- wordpress - 使用自定义 css 时 Elementor 标头中断