Python 获取日期时间之间的差异

Python 获取日期时间之间的差异,python,pandas,datetime,Python,Pandas,Datetime,我试图在我的数据帧中的两列datetime之间获得差异,如下所示: Time 1 Time 2 Hours 2019-02-24 09:35:49 2019-02-24 09:18:47 0 2019-02-24 09:43:45 2019-02-24 09:18:47 0 2019-02-24 21:52:25 2019-02-24 09:18:47 12 2019-02-25 22:04:11 2019-02

我试图在我的数据帧中的两列datetime之间获得差异,如下所示:

          Time 1                       Time 2          Hours 
2019-02-24 09:35:49 2019-02-24 09:18:47 0
2019-02-24 09:43:45 2019-02-24 09:18:47 0
2019-02-24 21:52:25 2019-02-24 09:18:47 12
2019-02-25 22:04:11 2019-02-24 21:52:25 0
2019-02-25 22:49:53 2019-02-24 21:52:25 0
2019-02-25 12:52:32 2019-02-24 21:52:25 15
2019-02-25 00:53:57 2019-02-25 12:52:32 12
2019-02-25 02:47:47 2019-02-25 00:53:57 1
我正在使用以下代码:

delta=时间2-时间1
totalSeconds=增量秒
小时=divmod(总秒数,3600)[0]
df.loc[索引,'Hours']=小时
但问题是,这段代码没有考虑日期的变化。在我的数据第4行中,日期时间的值相隔一天,但它仍然显示小时差为0小时,因为我认为它只是减去时间,而没有考虑日期的变化


我应该在代码中更改什么,请建议。

使用
delta.total_seconds()
而不是
delta.seconds

秒是一天内的秒数。Total_seconds将整个时间增量转换为秒,可能超过1天

totalSeconds = delta.total_seconds()

这个小演示使用数据的第4行

在:

输出:


您的数据帧是日期时间类型吗<代码>df['Time 1']=pd.to_datetime(df['Time 1']);df['Time 2']=pd.to_datetime(df['Time 2']);delta=df['Time 2']-df['Time 1'];totalSeconds=delta.total_seconds()另外,我注意到你的时间1大于时间2,你可能想做
delta=df['Time 1']-df['Time 2']
提供的答案被标记为低质量帖子供审查。以下是一些指导原则。提供的答案可能是正确的,但可以从解释中获益。
df = pd.DataFrame({'Time1':['2019-02-25 22:04:11'], 'Time2':['2019-02-24 21:52:25']})
df = df.applymap(pd.to_datetime)
df['Hours'] = (df.Time1 - df.Time2).dt.total_seconds() // 3600
| Time1               | Time2               | Hours |
|---------------------|---------------------|-------|
| 2019-02-25 22:04:11 | 2019-02-24 21:52:25 | 24.0  |