简体   繁体   English

如何从python中的timedelta64[ns]对象中提取天数作为整数

[英]how to extract days as integers from a timedelta64[ns] object in python

I have a pandas dataframe with a column like:我有一个带有如下列的熊猫数据框:

In [96]: data['difference']
Out[96]: 
0                 NaT
1     1 days 21:34:30
2     0 days 16:57:36
3     0 days 00:16:51
4     0 days 15:52:38
5     0 days 14:19:34
6     0 days 02:54:46
7     1 days 04:21:28
8     0 days 01:58:55
9     0 days 10:30:35
10    0 days 07:53:04
....
Name: difference, dtype: timedelta64[ns]

I want to create next to it a column with integers corresponding to the days values in this column.我想在它旁边创建一个列,其中包含与此列中的天数对应的整数。

这应该将您的timedelta64[ns]类型转换为表示天数的float64

data['difference'].astype('timedelta64[D]')

You can use dt.days to extract just days from your series,您可以使用dt.days从您的系列中提取几天,

df.difference
Out[117]: 
0   -1 days +00:00:05
1                 NaT
2   -1 days +00:00:05
3     1 days 00:00:00
dtype: timedelta64[ns]

df.difference.dt.days
Out[118]: 
0    -1
1   NaN
2    -1
3     1
dtype: float64

All other component extracts,所有其他成分提取物,

dr
Out[93]: 
0   -1 days +00:00:05
1                 NaT
2     1 days 02:04:05
3     1 days 00:00:00
dtype: timedelta64[ns]

dr.dt.components
Out[95]: 
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0    -1      0        0        5             0             0            0
1   NaN    NaN      NaN      NaN           NaN           NaN          NaN
2     1      2        4        5             0             0            0
3     1      0        0        0             0             0            0

根据熊猫文档,您可以使用timedelta64对象的astype方法提取天数,结果类型为float64

td.astype('timedelta64[D]')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM