使用 OneHotEncoder 和拟合数据时收到值错误

Receiving a value error when using OneHotEncoder and fitting data

我正在做作业,我们在 scikit-learn 中使用 OneHotEncoder 来打印所有类别。这是数据示例和我用来转换它的代码:

      grade sub_grade  short_emp  emp_length_num home_ownership        term
0          B        B2          0              11           RENT   36 months
1          C        C4          1               1           RENT   60 months
2          C        C5          0              11           RENT   36 months
3          C        C1          0              11           RENT   36 months
4          A        A4          0               4           RENT   36 months
5          E        E1          0              10           RENT   36 months

代码:

from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(categorical_features='all', handle_unknown='error', n_values='auto', sparse=True)
encoder.fit(lending_club)

我收到的错误是在术语栏上:

ValueError: could not convert string to float: ' 36 months'

OneHotEncoder 不支持字符串功能。您必须先将它们转换为整数,例如使用 LabelEncoder。另一种选择是在所有列上使用 LabelBinarizer

参见

scikit-learn 的 OneHotEncoder 支持 0.20.0.

中的字符串