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

无法将object列转为数值类型,时间序列模型运行报错求助

问题解决步骤

核心问题分析

你的Open列是字符串类型(object),部分数值包含千分位逗号(如'7,541.85'),导致无法直接转换为数值类型,进而被时间序列模型拒绝。另外你尝试转Int64是错误的——因为数据包含小数,整数类型无法容纳,且原字符串未清理逗号也无法直接转换。

解决方案

  1. 清理千分位逗号并转换为浮点类型
    先去掉Open列字符串中的逗号,再转换为float类型(适配带小数的数值):

    ftse_open["Open"] = ftse_open["Open"].str.replace(',', '').astype(float)
    
  2. 验证数据类型
    执行以下代码确认转换成功:

    print(ftse_open.dtypes)
    

    此时Open列的类型应为float64。

  3. 重新传入时间序列模型
    类型转换完成后,再运行你的时间序列代码:

    ftse_open = TimeSeries.from_dataframe(ftse_open, time_col='Date', value_cols='Open')
    

补充说明

  • 不要用Int64类型:你的数据是带小数的开盘价,浮点类型才是正确选择;Int64仅适用于整数数据。
  • 若后续需要整数(比如取整),可在转换为float后再用ftse_open["Open"] = ftse_open["Open"].astype(int),但通常金融数据保留小数更合理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:10:28