无法将字符串转换为浮点数:'CC6000'
Posted
技术标签:
【中文标题】无法将字符串转换为浮点数:\'CC6000\'【英文标题】:could not convert string to float: 'CC6000'无法将字符串转换为浮点数:'CC6000' 【发布时间】:2021-05-03 01:58:58 【问题描述】:我正在尝试构建一个机器学习模型,该模型可以预测给定数据集的延迟(clear_date 和 due_in_date 之间的差异)。
我已将数据集拆分为 x_train、y_train、x_test、validation_set。 我正在使用 sklearn 库中的线性回归模型。 当我尝试将我的数据拟合到线性回归模型中时,我得到了一个奇怪的错误
could not convert string to float: 'CC6000'
我该如何解决这个问题?
这是x_train和y_train的图片 [1]:https://i.stack.imgur.com/8RP2J.png [2]:https://i.stack.imgur.com/jB7qN.png [3]:https://i.stack.imgur.com/bDRQH.png
【问题讨论】:
你的日期列是 dtype datetime 吗? 【参考方案1】:您的数据框中似乎隐藏了一个字符串:“CC6000”。
线性回归只适用于数值样本,所以他无法处理这个字符串。
我查看了您的数据,但没有看到此字符串,但可以肯定它必须存在。当你找到他时,如果它是唯一的字符串,你将不得不消除这个样本,甚至,如果所有的特征都是分类的,你将不得不对其进行编码或删除。
要查找此字符串,请尝试以下操作:
df.isin(['CC6000']).any()
【讨论】:
上面的代码对我有用,我已经删除了字符串所在的列!谢谢,但现在我面临另一个问题from sklearn.linear_model import LinearRegression regressor = LinearRegression() regressor.fit(x_train, y_train)
在运行这个单元时我得到TypeError: invalid type promotion
你能帮忙吗?
我认为线性回归不支持日期......日期很难处理。您将不得不更改格式。在这里我找到了一些可以帮助你的有趣答案:link以上是关于无法将字符串转换为浮点数:'CC6000'的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:无法将字符串转换为浮点数:'GIAC'
ValueError:无法将字符串转换为浮点数:'2100 - 2850'
我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]