python - Pandas 按条件分组
问题描述
说我有一个df:
df=pd.DataFrame(columns=['a','b','c','d'], data=[[2, 1,1, 3],
[4, 2,3, 7],
[2, 4,7, 9],
[3, 2,9, 11],
[4, 3,11,15],
[5, 5,15,20],
[10,3,20,30]])
我有一个值数组(由'c'中的一些值组成,但可以是任意长度)
cuts=[3,11]
有没有办法按'c'分组,分成3组,这样在
第一个值'c'<3,
第二个值 3<= 'c' <11,
第三个值 'c'>11 ?
然后 .apply('a':'sum','b':'max', 'd':'max')
一种方法是制作一个字典,然后 map df['c'] 应用一个地图。但我想知道是否可以使用 groupby (更快)做到这一点。
解决方案
推荐阅读
- django - 在 StructBlock 中使用 MultiFieldPanel
- excel - 在下一个工作表循环中,SpecialCells(xlCellTypeVisible) 范围应读取为 NOTHING
- laravel - 带有 OR WHERE 条件的 Laravel Eloquent 查询
- ionic-framework - 在 Ionic 中保存的 Gmail 样式的多选列表项
- webpack - 如何使用通用的基本路径从通用的少 webpack 设置导入?
- python - 我是新手,我一般对 PyGame、OOP 和 Python 有疑问
- c++ - 如何修复错误:抛出异常:读取访问冲突?
- node.js - Discord.js 机器人表情符号反应 - 如何收集第一个做出反应的用户而不是消息作者?
- php - 将数据从控制器传递到 CodeIgniter 中的视图会导致未定义的变量
- javascript - Sails 的 Model.findOrCreate 在 for 循环中返回查询结果