微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算两个时间戳列的差异

如何解决计算两个时间戳列的差异

我有一个这样的数据集:

data = pd.DataFrame({'order_date-time':['2017-09-13 08:59:02','2017-06-28 11:52:20','2018-05-18 10:25:53','2017-08-01 18:38:42','2017-08-10 21:48:40','2017-07-27 15:11:51','2018-03-18 21:00:44','2017-08-05 16:59:05','2017-06-05 12:22:19'],'delivery_date_time':['2017-09-20 23:43:48','2017-07-13 20:39:29','2018-06-04 18:34:26','2017-08-09 21:26:33','2017-08-24 20:04:21','2017-08-31 20:19:52','2018-03-28 21:57:44','2017-08-14 18:13:03','2017-06-26 13:52:03']})

我想将这些日期之间的时差计算为天数,并将其添加到表格中作为交货延迟列。但我需要包括这个计算的日期和时间 例如,如果差值为 7 天 14:44:46,我们可以将其四舍五入为 7 天。

解决方法

from datetime import datetime

datetime.strptime(date_string,format)

你可以用它来将字符串转换为DateTime格式并将其放入变量中,然后进行计算

访问https://www.journaldev.com/23365/python-string-to-datetime-strptime/

,

Python 的 datetime 库非常适合处理单个时间戳。但是,如果您的数据在 pandas DataFrame 中,就像您的情况一样,您应该使用 pandas 日期时间功能。

要将带有时间戳的列从字符串转换为正确的日期时间格式,您可以使用 pandas.to_datetime()

data['order_date_time'] = pd.to_datetime(data['order_date_time'],format="%Y-%m-%d %H:%M:%S")
data['delivery_date_time'] = pd.to_datetime(data['delivery_date_time'],format="%Y-%m-%d %H:%M:%S")

format 参数是可选的,但我认为最好始终使用它来确保您的日期时间格式不会被错误地“解释”。它还使大型数据集的处理速度更快。

一旦您拥有日期时间格式的列,您就可以简单地计算它们之间的 timedelta

data['delay'] = data['delivery_date_time'] - data['order_date_time']

最后,如果你想舍入这个 timedelta,那么 pandas 再次有正确的方法:

data['approx_delay'] = data['delay'].dt.round('d')

额外的 dt 允许访问 datetime 特定方法,rou​​nd 函数将 frequency 作为参数,在这种情况下,频率已使用 {{ 1}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。