使用差异对列进行分组并将熊猫中的另一列按另一列排序

时间:2019-06-21 00:20:20

标签: python pandas

嗨,我正在尝试按彼此更接近的值对一列进行分组,然后再根据其他值对另一列进行排序,例如:

column1 column2 column3
322   16   a
326   11   b
323   22   c
323   26   d
323   20   e
324   15   f
325   18   g
498   20   h
498   30   i
495   22   j
496   15   k

我希望使用具有+3的值并将列2升序排序的值对column1进行分组

结果:

column1 , column2
323 (+-3) b,f,a,g,e,c,d
495 (+-3) k,h,j,i

因为我们有

(b,11),(f,15),(a,16),(g,18),(e,20),(c,22),(d,26) (k,15),(h,20),(j,22),(i,30)

1 个答案:

答案 0 :(得分:3)

在这种情况下,我们需要在sort_values之后使用cumsumdiff

创建另一个帮助键。
s=df.sort_values(['column1'])
s['New']=s.column1.diff().gt(3).cumsum()
s=s.sort_values(['New','column2'])
s.groupby('New').agg({'column1':'first','column3':','.join})
     column1        column3
New                        
0        326  b,f,a,g,e,c,d
1        496        k,h,j,i