python - 熊猫 - 有条件的分组
问题描述
我想根据给定的范围条件对我的熊猫数据框进行分组。例如:
Number, Amount
1, 5
2, 10
3, 11
4, 3
5, 5
6, 8
7, 9
8, 6
范围条件:
1 到 4(包括),命名为 A:5+10+11+3 = 29
5 及以上,命名为 B:5+8+9+6 = 28
期望的结果:
Number, Amount
A, 29
B, 28
编辑:感谢伟大的解决方案。如果需要,我希望能够添加更多范围条件,因此单独使用 5-7 和 8 也应该是可能的。是否有可能保持这种灵活性?
解决方案
您可以检查 的值Number
,然后将其映射到A,B
groupby:
(df.Amount.groupby(df.Number.ge(5).map({True:'B',False:'A'}))
.sum()
.reset_index()
)
输出:
Number Amount
0 A 29
1 B 28
推荐阅读
- r - 当我添加一个新的情节时,R Markdown 没有编织
- django - 返回值django中的TypeError
- simple-salesforce - 如何更改 Simple Salesforce 的 API 版本
- snowflake-cloud-data-platform - 雪花任务成本估算
- tcl - 我需要在 tk_menuOption 和调用 um 事件后选择一个选项
- javascript - 无法安装 expo-cli -g
- c - 我在 C 中创建内存泄漏吗?
- testing - Kube-monkey 区间(混沌测试)
- python - 接收带有套接字的大型腌制对象时的无限循环
- javascript - 如何迭代到 if 语句内的数组