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

时间:2017-02-13 03:52:12

标签: python sklearn-pandas

我正在进行一项任务,我们正在使用scikit中的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'

2 个答案:

答案 0 :(得分:1)

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

请参阅How to do Onehotencoding in Sklearn Pipeline

答案 1 :(得分:0)

scikit-learn的OneHotEncoder支持0.20.0以上的字符串。