Python 值错误:无法将字符串转换为浮点值

Python 值错误:无法将字符串转换为浮点值,python,scikit-learn,Python,Scikit Learn,ValueError回溯(最近的调用 最后)在() ---->1 enc.fit_变换(X) 中的~\Anaconda3\lib\site packages\sklearn\preprocessing\data.py fit_transform(自我、X、y)2017年“2018年回报” _选择变换(X,自适配变换, ->2019 self.categorical_功能,copy=True)2020 2021 def_转换(self,X): 中的~\Anaconda3\lib\site pack

ValueError回溯(最近的调用 最后)在() ---->1 enc.fit_变换(X)

中的~\Anaconda3\lib\site packages\sklearn\preprocessing\data.py fit_transform(自我、X、y)2017年“2018年回报” _选择变换(X,自适配变换, ->2019 self.categorical_功能,copy=True)2020 2021 def_转换(self,X):

中的~\Anaconda3\lib\site packages\sklearn\preprocessing\data.py _transform_selected(X,transform,selected,copy)1807 X:阵列或稀疏矩阵,形状=(n_样本,n_特征_new)1808
""" ->1809 X=检查数组(X,接受稀疏=csc',复制=复制,数据类型=浮动\u数据类型)1810 1811如果存在(选中, 6.字符串类型)和所选==“全部”:

中的~\Anaconda3\lib\site packages\sklearn\utils\validation.py 检查数组(数组、接受稀疏、数据类型、顺序、副本、, 强制所有有限,确保2d,允许nd,确保最小样本, 确保\u最小\u功能,警告\u数据类型,估计器) 431力(所有有限) 432其他: -->433 array=np.array(array,dtype=dtype,order=order,copy=copy) 434 435如果确保_2d:

ValueError:无法将字符串转换为浮点:“性别”

从这个帖子上,

您可以看到,它不工作,但与整数。然而,现在,文档中说它可以处理整数

也许您应该更新您的版本,因为它应该能够转换字符串


对我来说,编辑中的一段代码非常有效。

使用
scikit-learn-0.20.3
scipy-1.2.1
from sklearn.preprocessing import OneHotEncoder
enc=OneHotEncoder(handle_unknown='ignore')
X=[['gender', 1], ['NationalITy', 2], ['PlaceofBirth', 3],['StageID', 4], ['GradeID', 5], ['SectionID', 6],['Topic', 7], ['Semester', 8], ['Relation', 9],['raisedhands', 1], ['VisITedResources', 2], ['AnnouncementsView', 3],['Discussion', 4], ['ParentAnsweringSurvey', 5], ['ParentschoolSatisfaction', 6],['Class',7]]
enc.fit_transform(X)