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请检查此链接: