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格式化为字符串,另请参见