【问题标题】:Find an interval between two intervals找到两个区间之间的区间
【发布时间】:2021-02-05 01:25:16
【问题描述】:

我有一个 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] ,...

您对此有解决方案吗?另外,我想找到重叠的间隔以及重叠的次数(但这是另一个问题)。

【问题讨论】:

    标签: python dataframe intervals


    【解决方案1】:

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

    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)]
    

    【讨论】:

    • 谢谢!这几乎是我所需要的。对于可能偶然发现这个问题的其他人:要检索我想要的间隔,我首先需要合并我的数据帧的重叠间隔。然后我应用了你的解决方案,我得到了正确的结果。
    猜你喜欢
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多