【发布时间】:2020-01-31 12:20:29
【问题描述】:
我有一个由 2 个数字坐标“开始”和“结束”定义的区间的 Pandas 数据框。
我正在尝试折叠所有重叠的间隔,并保留内部坐标。
index start end
0 10 40
1 13 34
2 50 100
3 44 94
输出:具有折叠间隔和内部坐标的相同 Pandas 数据框。如果两个区间共享一个公共点(包括闭合端点),则它们会重叠。只有一个共同开放端点的区间不重叠。
例如行索引 = [0,1] 的区间是重叠的。我想将这两个区间折叠成一个新区间,它有 new_start == max([10, 13]) 和 new_end == min([40,34])。行索引 [0,1] 的折叠间隔将具有 new_start = 13,new_end = 34。
index start end
0 13 34
1 50 94
数据框的大小为 2M 行,因此我也在寻找一种有效的方法。
谢谢你, 安德烈亚
【问题讨论】:
-
当您找到与前一行重叠的行时,还不清楚该怎么做。你保留第一次出现吗?您是否仅在一行完全包含在另一行中时才删除该行,或者是否有任何重叠导致它被删除?为什么
10 40行消散器以及50 94行是如何出现的? -
重叠区间是否连续?