You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame中datetime64类型Time列转为float64?解决KeyError

解决KeyError并将datetime列转为float64

第一步:排查KeyError问题

出现KeyError: 'Time'说明DataFrame里没有名为Time的列,大概率是列名拼写/格式问题:

  • 先打印所有列名确认实际名称:
    print(data.columns.tolist())
    
  • 如果发现列名是小写time、带空格Time 或者其他变体,先重命名列:
    # 把'实际列名'替换成你查到的真实列名
    data.rename(columns={'实际列名': 'Time'}, inplace=True)
    

第二步:将datetime64列转为float64

确认Time列存在且为datetime64[ns]类型后,按需求选择转换方式:

方式1:转成Unix时间戳(秒数,常用)

如果需要的是从1970-01-01 00:00:00以来的秒数(float类型):

# 先确保列是标准datetime类型(读取Excel时可能没自动识别,手动指定格式转换)
data['Time'] = pd.to_datetime(data['Time'], format='%d/%m/%Y %H:%M')
# 转换为float64格式的时间戳
data['Time'] = data['Time'].apply(lambda x: x.timestamp()).astype('float64')

方式2:直接转底层纳秒计数

如果需要的是datetime64[ns]对应的纳秒数(数值很大,单位为纳秒):

data['Time'] = data['Time'].values.astype('float64')

方式3:用pd.to_numeric批量转换

如果要确保所有列最终都是float64,可以用pd.to_numeric处理Time列,再统一转换其他列:

data['Time'] = pd.to_numeric(data['Time'], downcast='float')
# 其他列如果是数值类型,统一转float64
data = data.astype('float64')

第三步:验证结果

执行完转换后,检查所有列的数据类型:

print(data.dtypes)

确认Time列和其他列均为float64即可。

内容的提问来源于stack exchange,提问作者Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:07:45