Pandas:将datetime列转换为int

时间:2015-04-28 11:49:21

标签: python datetime pandas

我有一个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)

这有效,但好奇的是有更快/更好的方法吗?

1 个答案:

答案 0 :(得分:3)

这是frequency conversion

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