获取日期时间之间的差异

时间:2019-09-13 01:06:08

标签: python pandas 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 = Time 2 - Time 1
totalSeconds = delta.seconds
Hours = divmod(totalSeconds, 3600)[0]
df.loc[index,'Hours'] = Hours

但是问题是这段代码没有考虑到日期的变化。在我的数据的第4行中,date-time的值相隔一天,但由于我认为它仍然显示小时差为0小时只是减去时间,而不考虑日期更改。

我建议更改代码中的内容。

2 个答案:

答案 0 :(得分:0)

使用delta.total_seconds()代替delta.seconds

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

totalSeconds = delta.total_seconds()

答案 1 :(得分:0)

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

IN:

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

OUT:

| Time1               | Time2               | Hours |
|---------------------|---------------------|-------|
| 2019-02-25 22:04:11 | 2019-02-24 21:52:25 | 24.0  |