Python ValueError:无法将字符串转换为浮点:';什么';(Sklearn),如何使用标签编码器?

Python ValueError:无法将字符串转换为浮点:';什么';(Sklearn),如何使用标签编码器?,python,pandas,scikit-learn,decision-tree,sklearn-pandas,Python,Pandas,Scikit Learn,Decision Tree,Sklearn Pandas,我有两个训练集输入和输出集 X = df['First Word'] y = df['Answers'] 当我尝试时: from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier() model.fit(X,y) predictions = model.predict(['how']) 我得到了一个错误: ValueError: could not convert string to flo

我有两个训练集输入和输出集

X = df['First Word']

y = df['Answers']
当我尝试时:

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
model.fit(X,y)
predictions = model.predict(['how'])
我得到了一个错误:

ValueError: could not convert string to float: 'what'
错误是指无法将str()传递给fit()方法


在这种情况下,如何使用LabelEncoder以使上述代码正常工作?

所有ML型号都需要以数字形式输入,因此您需要根据需要对输入数据进行标签编码器或热编码

您可以使用以下代码对数据帧进行编码

 from sklearn import preprocessing
 le = preprocessing.LabelEncoder()
 X = le.fit_transform(X)

在编码传递到模型之后,我希望您不会出现这种错误

这种错误值错误:无法将字符串转换为浮点值:从类型为df=df[['p']]的csv文件中读取数据帧时可能会发生。astype({'p':float})。如果csv是用空格记录的,python将不会将空格字符识别为nan。您需要用df=df的NaN覆盖空单元格。替换(r'^\s*$,np.NaN,regex=True)没有NaN请检查此链接: