【发布时间】:2021-05-22 10:09:49
【问题描述】:
我有一个这样的数据框,
df
col1 col2 col3
A [p,s] 2
A [q] 3
A [r,t] 4
A [p,x] 7
B [x,y] 8
C [s] 4
C [t,v] 6
C [u,x] 7
df 按 col1 排序。现在对于前一行或/和下一行的每个 col1 值,如果连续 col3 值之间的差异小于 2,则将 col2 值合并到一行中。所以数据框看起来像,
df
col1 col2
A [p,s,q,r,t]
A [p,x]
B [x,y]
C [s]
C [t,v,u,x]
这可以通过每次过滤 col1 值来使用 for 循环来完成,但它会花费更多时间来执行,寻找一些 pandas 快捷方式来最有效地完成它。
【问题讨论】:
-
编辑了问题,如果连续 col3 值之间的差异小于 2