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

2024-10-01 19:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的数据帧中的两列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行,日期时间的值相隔一天,但它仍然显示小时差为0小时,因为我认为它只是减去时间,而不考虑日期的变化。你知道吗

我应该在我的代码中更改什么,请建议。你知道吗


Tags: 数据代码dfdatetimeindextime时间差异
2条回答

delta.total_seconds()代替delta.seconds

秒是一天中的秒数。Total_seconds将整个时间增量转换为秒,可以超过1天。你知道吗

totalSeconds = delta.total_seconds()

这个小演示使用数据的第4行。你知道吗

在:

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  |

相关问题 更多 >

    热门问题