使用model.predict()时发生错误“将字符串转换为浮点”

时间:2019-05-27 02:33:55

标签: python pandas dataframe scikit-learn

当我使用model.predict()时,发生以下错误,

  

ValueError:无法将字符串转换为float:

我的代码中使用了

一次性编码

features_df = pd.get_dummies(df, columns=['garage_type', 'city'])

下面给出了预测代码

sample = [["attached"], ["Richardport"]]
predictedvalue = model.predict(sample)'

是否有解决此错误的建议?谢谢。

2 个答案:

答案 0 :(得分:1)

出现错误的原因是因为您正在向模型发送字符串,而模型期望的是浮点向量,该向量的形状应与训练数据的形状相同。

从代码中可以明显看出,在使用数据进行训练之前,您正在使用一种热编码。您还需要将样本转换为相同的一种热编码矢量格式,以获得答案。

答案 1 :(得分:1)

您还需要将样本转换为单独的列,这意味着,您必须检查新的虚拟列,并将样本转换为布尔列表L,其中L [i] = True if column [i]在调用.predict(L)方法之前,对所有其他列表元素=='attached'或column [i] =='Richardport'和False。

此回复可能会有所帮助:

  

How to use Pandas get_dummies on predict data?