如何判断两行的日期范围是否有重叠?
输入数据框:
A | B | 开始时间 | 结束时间 | 时间戳 |
---|---|---|---|---|
A1 | B1 | 2022-01-15 | 2022-02-15 | 2021-05-17 |
A1 | B1 | 2021-07-15 | 2021-10-17 | 2021-05-17 |
A1 | B1 | 2021-07-30 | 2021-10-02 | 2021-05-16 |
A1 | B2 | 2022-01-01 | 2023-01-01 | 2021-05-17 |
A1 | B2 | 2021-06-02 | 2021-06-04 | 2021-05-16 |
A2 | B3 | 2021-05-10 | 2021-05-12 | 2021-05-17 |
A2 | B3 | 2021-04-10 | 2021-06-12 | 2021-05-16 |
A2 | B4 | 2021-06-02 | 2021-06-04 | 2021-05-17 |
我想知道如何确定同一组(A和B)的两行是否有重叠。例如,在第0、1和2行,它们属于同一组(A1和B1),但只有第1和2行之间存在日期范围的重叠,因此如果有重叠,则希望保留时间戳最高的行。但例如在第3和4行,尽管它们属于同一组(A1和B2),但由于它们的日期没有重叠,因此我希望保留这两个日期。如何实现?
期望的数据框:
A | B | 开始 | 结束 | 时间戳 |
---|---|---|---|---|
A1 | B1 | 2022-01-15 | 2022-02-15 | 2021-05-17 |
A1 | B1 | 2021-07-15 | 2021-10-17 | 2021-05-17 |
A1 | B2 | 2022-01-01 | 2023-01-01 | 2021-05-17 |
A1 | B2 | 2021-06-02 | 2021-06-04 | 2021-05-16 |
A2 | B3 | 2021-05-10 | 2021-05-12 | 2021-05-17 |
A2 | B4 | 2021-06-02 | 2021-06-04 | 2021-05-17 |