有如下的df:
訂單編號 start end
0 D0001 2021-01-01 08:12:23 2021-01-01 13:12:23
1 D0002 2021-02-13 18:12:23 2021-02-14 18:12:23
2 D0003 2021-02-11 10:12:23 2021-02-11 12:12:23
3 D0004 2021-01-01 09:12:23 2021-01-01 11:12:23
4 D0005 2021-01-04 08:12:23 2021-01-04 15:12:23
5 D0006 2021-01-05 08:12:23 2021-01-05 11:12:23
6 D0007 2021-01-03 08:12:23 2021-01-06 08:12:23
7 D0008 2021-01-01 09:12:23 2021-01-01 19:12:23
8 D0009 2021-01-01 11:12:23 2021-01-01 12:12:23
9 D0010 2021-01-02 09:12:23 2021-01-02 19:12:23
10 D0011 2021-01-02 11:12:23 2021-01-02 12:12:23
用于記錄車輛接受的訂單的起運時間和到達時間。
現在要求篩查出df中是否有存在時間交叉重疊的記錄。如果有,和哪一條交叉重疊!
已實作的代碼如下:
s, e = df[['start', '識訓end']].to_numpy().T
# print(s,e)
m1 = (s[:, None] > s) & (s[:, None] < e)
m2 = (e[:, None] < e) & (e[:, None] > s)
df['overlap'] = (m1 | m2).any(1)
df1 = df[df['overlap'] == True]
但是無法定位是與哪條記錄重疊!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285003.html