在当前版本的Pandas(版本0.14)中,这可以正常工作:
In [132]: df[:5]['duration'] / np.timedelta64(1, 's')
Out[132]:
0 1232
1 1390
2 1495
3 797
4 1132
Name: duration, dtype: float64
这是较旧版本的Pandas / NumPy的解决方法:
In [131]: df[:5]['duration'].values.view('<i8')/10**9
Out[131]: array([1232, 1390, 1495, 797, 1132], dtype=int64)
timedelta64和datetime64数据在内部存储为8字节整数(dtype'<i8'
)。因此,以上将timedelta64s视为8字节整数,然后进行整数除法将纳秒转换为秒。
请注意,您需要NumPy 1.7或更高版本才能使用datetime64 / timedelta64s。