#convert both columns to timedeltas
a = pd.to_timedelta(df['Arrive'] + ':00')
b = pd.to_timedelta(df['Leave'] + ':00')
#one day timedelta
oneday = np.array([1], dtype='timedelta64[D]')
#zero timedelta
zero = np.array(0, dtype='timedelta64[D]')
#compare if difference is negative
mask = (a - b) > zero
#by condition get difference, add one day if next day, last convert to minutes
df['TravelTime'] = ((np.where(mask, a - b, a + oneday - b) /
np.timedelta64(1, 'm')).astype(int))
print (df)
Leave Arrive TravelTime
0 18:26 21:16 170
1 12:18 14:19 121
2 06:23 13:02 399
3 15:52 03:14 682
因为你只提供时间数据,所以我假设请假时间不太晚到达时间是第二天到达的时间
我认为需要:
相关问题 更多 >
编程相关推荐