嗨,我正在尝试按彼此更接近的值对列进行分组,例如:
column1 column2
322 a
326 b
323 c
323 d
323 e
324 f
325 g
498 h
498 i
495 j
496 k
我希望使用差异为+-3的值对column1进行分组
结果:
column1 , column2
323 (+-3) a,b,c,d,e,f,g
495 (+-3) h,i,j,k
答案 0 :(得分:1)
通过sort_values
对值进行排序,然后使用diff
和cumsum
创建组密钥
df=df.sort_values('column1')
df.sort_index().\
groupby(df.column1.diff().gt(3).cumsum()).\
agg({'column1':'first','column2':','.join})
column1 column2
column1
0 322 a,b,c,d,e,f,g
1 498 h,i,j,k