无法将字符串转换为浮点数:'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:无法将字符串转换为浮点数:'Bad'

ValueError:无法将字符串转换为浮点数:'2100 - 2850'

我收到 ValueError:无法将字符串转换为浮点数:'8,900' [重复]

ValueError:无法将字符串转换为浮点数:'62,6'

ValueError:无法将字符串转换为浮点数:'Mme'