如何使用Pandas计算两时间戳列的天数差值并新增配送延迟列
解决方案:计算订单与配送的时间差并添加延迟天数列
没问题,我来帮你搞定这个需求!要计算订单时间和配送时间的天数差并取整,咱们可以按以下步骤来操作:
步骤说明
- 转换日期时间格式:首先得把DataFrame里的字符串类型日期时间转换成pandas能识别的
datetime类型,不然没法计算时间差。 - 计算时间差:用配送时间减去订单时间,得到
Timedelta类型的结果,这个结果会包含天、时、分、秒的完整信息。 - 提取整数天数:直接获取
Timedelta对象的days属性,它会自动返回时间差的整数天数部分(比如7天14小时44分46秒的话,days就是7,完全符合你要的取整规则)。 - 添加新列:把提取到的天数作为新列
delivery delay添加到原DataFrame中。
完整代码示例
import pandas as pd # 你的原始数据集 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-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-08-14 18:13:03','2017-06-26 13:52:03'] }) # 1. 转换为datetime类型 data['order_date-time'] = pd.to_datetime(data['order_date-time']) data['delivery_date_time'] = pd.to_datetime(data['delivery_date_time']) # 2. 计算时间差并提取整数天数 data['delivery delay'] = (data['delivery_date_time'] - data['order_date-time']).dt.days # 查看结果 print(data)
结果说明
运行这段代码后,你会看到DataFrame多了一列delivery delay,里面的值就是每个订单从下单到配送完成的整数天数差——比如第一个订单的时间差是7天14小时44分46秒,结果就会显示7天,完全满足你的要求。
内容的提问来源于stack exchange,提问作者nemo92world
相关产品推荐
相关产品推荐

