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

使用LinearRegression模型时遇TypeError:无法转换Timestamp为float

解决线性回归中Timestamp类型数据的报错问题

你遇到的TypeError是因为训练特征x里包含了Timestamp(日期时间)类型的列,线性回归模型仅支持数值型输入,无法直接处理日期时间对象。以下是几种可行的解决方法:

  • 方法1:转换为时间差数值(适用于日期仅表示先后顺序的场景)
    把日期转换为与最早日期的天数差,转为纯数值:

    import pandas as pd
    # 确保日期列是datetime类型(如果还不是的话)
    df['Date'] = pd.to_datetime(df['Date'])
    # 计算从最早日期开始的天数差
    df['Date'] = (df['Date'] - df['Date'].min()).dt.days
    
  • 方法2:提取时间特征(适用于日期包含周期规律的场景)
    从日期中提取年、月、日、星期等数值特征,替代原日期列:

    import pandas as pd
    df['Date'] = pd.to_datetime(df['Date'])
    # 提取时间特征
    df['Year'] = df['Date'].dt.year
    df['Month'] = df['Date'].dt.month
    df['Day'] = df['Date'].dt.day
    df['Weekday'] = df['Date'].dt.weekday
    # 删除原日期列,重新定义训练特征
    x = df.drop(['Order Qty', 'Date'], axis=1)
    
  • 方法3:直接删除日期列(如果日期对预测目标无意义)
    如果日期列和订单数量没有关联,直接从训练特征中移除:

    x = df.drop(['Order Qty', 'Date'], axis=1)
    

处理完数据后,重新执行训练代码即可:

lm = LinearRegression()
lm.fit(x, y)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:33:21