【发布时间】:2019-01-26 06:29:52
【问题描述】:
我有一个数据框,该数据框具有间隔和与每个相关联的标签。我需要对按给定距离分隔的行进行分组和聚合。
例如,开始/结束在其他行的开始/结束的 3 个单位内的组行将其label 字段连接起来:
In [16]: df = pd.DataFrame([
...: [ 1, 3,'a'], [ 4,10,'b'],
...: [15,17,'c'], [18,20,'d'],
...: [27,30,'e'], [31,40,'f'], [41,42,'g'],
...: [50,54,'h']],
...: columns=['start', 'end', 'label'])
...:
In [17]: df
Out[17]:
start end label
0 1 3 a
1 4 10 b
2 15 17 c
3 18 20 d
4 27 30 e
5 31 40 f
6 41 42 g
7 50 54 h
期望的输出:
In [18]: df_desired = group_by_interval(df)
In [19]: df_desired
Out[19]:
start end label
0 1 10 a b
1 15 20 c d
2 27 30 e f g
3 50 54 h
如何使用数据框按间隔执行这种分组?
我找到了一个类似的 SO here,但它有点不同,因为我不知道在哪里切先验。
【问题讨论】:
-
是否保证一行的
start: end不会与另一行的start: end重叠?如果您可以在上面的DataFrame中添加类似z 33:34的内容,它可能会变得复杂 -
不是……我想我可能想为此提出另一个问题……
-
是的,情况很复杂。
标签: python pandas dataframe aggregate