首页 > 解决方案 > 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 (更快)做到这一点。

标签: pythonpandasgroup-by

解决方案


推荐阅读