您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python Pandas DataFrame中将timedelta64 [ns]列转换为秒

在Python Pandas DataFrame中将timedelta64 [ns]列转换为秒

在当前版本的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。

python 2022/1/1 18:29:30 有570人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶