无法将object列转为数值类型,时间序列模型运行报错求助
问题解决步骤
核心问题分析
你的Open列是字符串类型(object),部分数值包含千分位逗号(如'7,541.85'),导致无法直接转换为数值类型,进而被时间序列模型拒绝。另外你尝试转Int64是错误的——因为数据包含小数,整数类型无法容纳,且原字符串未清理逗号也无法直接转换。
解决方案
清理千分位逗号并转换为浮点类型
先去掉Open列字符串中的逗号,再转换为float类型(适配带小数的数值):ftse_open["Open"] = ftse_open["Open"].str.replace(',', '').astype(float)验证数据类型
执行以下代码确认转换成功:print(ftse_open.dtypes)此时
Open列的类型应为float64。重新传入时间序列模型
类型转换完成后,再运行你的时间序列代码: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
相关产品推荐
相关产品推荐

