我有一个datetime64类型的列,已经存在几天
In [88]: print df.days.head()
0 756 days
1 262 days
2 72 days
3 173 days
4 12 days
Name: days, dtype: timedelta64[ns]
我想将其转换为int64,我执行以下操作:
df['days'] = df['days'].astype(int)/(24*3600*10**9)
这有效,但好奇的是有更快/更好的方法吗?
答案 0 :(得分:3)
In [3]: s = Series(pd.to_timedelta(['756 days','2 days', '3 days 5 min']))
In [4]: s
Out[4]:
0 756 days 00:00:00
1 2 days 00:00:00
2 3 days 00:05:00
dtype: timedelta64[ns]
In [5]: s.astype('timedelta64[D]')
Out[5]:
0 756
1 2
2 3
dtype: float64
In [6]: s / np.timedelta64(1,'D')
Out[6]:
0 756.000000
1 2.000000
2 3.003472
dtype: float64