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

如何解决TypeError: float()参数必须是字符串或数字而非Timestamp错误?

错误原因

你的训练集X_train中包含Timestamp类型的特征,而你使用的所有机器学习模型(LR、LDA、KNN等)无法直接处理这类非数值/非类别数据,在模型尝试将其转换为浮点型输入时触发了TypeError。

修复方案
  • 将Timestamp转换为数值型特征(推荐)
    可以把时间戳转为Unix时间戳(秒级/毫秒级),或者提取年、月、日等衍生时间特征,示例代码:

    # 假设X_train是DataFrame,目标时间列名为'time_feature'
    # 转换为Unix秒级时间戳
    X_train['time_feature'] = X_train['time_feature'].astype('int64') // 10**9
    
    # 或者提取时间衍生特征
    X_train['year'] = X_train['time_feature'].dt.year
    X_train['month'] = X_train['time_feature'].dt.month
    X_train['day'] = X_train['time_feature'].dt.day
    # 删除原Timestamp列
    X_train = X_train.drop('time_feature', axis=1)
    
  • 若时间特征无意义,直接删除
    如果该时间戳对预测没有帮助,可直接从训练集中移除:

    # 替换为你的Timestamp列名
    X_train = X_train.drop('time_feature', axis=1)
    
验证

修改X_train的特征类型后,重新运行你提供的模型评估代码即可解决该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:07:28