Python 在日期时间数据的特殊部分上分隔,并将其更改为int
我有一个这样的数据集Python 在日期时间数据的特殊部分上分隔,并将其更改为int,python,datetime,jupyter-notebook,data-analysis,timedelta,Python,Datetime,Jupyter Notebook,Data Analysis,Timedelta,我有一个这样的数据集 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
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']})
我需要计算此数据的交付延迟
我这样做是为了将其更改为dattime数据
data['order_date-time']=pd.to_datetime(data['order_date-time'])
data['delivery_date_time']=pd.to_datetime(data['delivery_date_time'])
然后我计算了
data['delivery delay']= data['delivery_date_time']-data['order_date-time']
新的列在输出中如下所示
7 days 14:44:46
15 days 08:47:09
...
如何将这些列值更改为int值,如7、15、。。如果没有“天”和时间?将两个日期时间列相互减去,将得到一列数据类型。您可以使用
dt
访问器调用timedelta
列的days
属性:
data['delivery delay'].dt.days
0 7
1 15
2 17
3 8
...
…或者,如果需要小数天,请调用total_seconds
并除以一天中的秒数:
data['delivery delay'].dt.total_seconds()/86400
0 7.614421
1 15.366076
2 17.339271
3 8.116563
...
不幸的是,您不能像使用datetime一样将timedelta格式化为字符串,另请参见