Pandas 中两列之间的时差

zad*_*00b 3 numpy dataframe pandas

如何减去两列之间的时间并将其转换为分钟

         Date Time Ordered Time Delivered
0  1/11/19   9:25:00 am    10:58:00 am
1  1/11/19  10:16:00 am    11:13:00 am
2  1/11/19  10:25:00 am    10:45:00 am
3  1/11/19  10:45:00 am    11:12:00 am
4  1/11/19  11:11:00 am    11:47:00 am
Run Code Online (Sandbox Code Playgroud)

我想减去 Time_delivered - Time_ordered 以获得交付所需的分钟数。

df.time_ordered = pd.to_datetime(df.time_ordered)

Run Code Online (Sandbox Code Playgroud)

这不会输出正确的时间,而是将今天的日期添加到时间

jez*_*ael 5

将两个时间列转换为日期时间,获得差异,转换为秒Series.dt.total_seconds,然后通过除法转换为分钟60

df['diff'] = (pd.to_datetime(df.time_ordered, format='%I:%M:%S %p')
                .sub(pd.to_datetime(df.time_delivered, format='%I:%M:%S %p'))
                .dt.total_seconds()
                .div(60))
Run Code Online (Sandbox Code Playgroud)