找到两个间隔之间的间隔

Find an interval between two intervals

我有一个 pandas 数据框,其中包含整数的起始值和终止值,如下所示(按起始值排序)。每行描述视频中发生的一个事件(可以有重复行描述同一帧之间发生的两个不同事件)。

index frame_start frame_end
0 7 39
1 39 57
2 39 57
3 58 400
4 417 615
5 485 500
6 640 745
... ... ...

我想找到没有事件发生的时间间隔,例如:[1,7]、[57,58]、[400,417]、[615、640],...

你有解决办法吗?另外,然后我想找到重叠的间隔以及重叠的间隔(但这是另一个问题)。

我发现将数据框转换为二维列表更容易做到这一点:

lst = [[1,1]] + df.to_numpy().tolist()
result = [(lst[i][1], lst[i+1][0]) for i in range(len(lst)-1) if lst[i][1] < lst[i+1][0]]

print(result)
#[(1, 7), (57, 58), (400, 417), (500, 640)]