如何将pandas.timedelta64[ns]类型数据转换为纳秒级整数?
Pandas Timedelta类型列转纳秒整数的实现方法
你遇到的两个报错核心原因是Time列实际为object存储类型,列中是独立的pandas.Timedelta对象,而非统一的timedelta64[ns]数值数组,因此直接做类型强转或内存视图修改都会失败。
正确实现步骤如下:
- 先将列转换为标准的
timedelta64[ns]类型
import pandas as pd df['Time'] = pd.to_timedelta(df['Time'])
- 转换为纳秒单位的整数,有两种兼容性较好的方案:
- 方案1:通过总秒数换算,适配所有pandas版本
df['Time'] = (df['Time'].dt.total_seconds() * 1e9).astype('int64')
- 方案2:直接调用dt.value属性获取纳秒数值,代码更简洁
df['Time'] = df['Time'].dt.value
如果列中包含空Timedelta值,可以改用可空整数类型避免报错:
df['Time'] = (df['Time'].dt.total_seconds() * 1e9).astype('Int64')
内容的提问来源于stack exchange,提问作者S23
相关产品推荐
相关产品推荐

