我的数据集里面,有的变量是categorical的,比如国家,所以我需要做One Hot Encoding。
但是用OneHotEncoder会报错。
>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder(categorical_features=['a'])
>>> new_df = enc.fit_transform(df)
ValueError: could not convert string to float
这个错误是什么意思?难道sklearn.preprocessing.OneHotEncoder只认识数值的?不能处理字符串类型的?
2个回答
可以用pandas的get_dummies
df[feature] = df['country'].astype('category')
df = pandas.get_dummies(df, columns=['country'])
对于字符类型,你需要先做LabelEncoder,把它转成整数类型,然后再用OneHotEncoder
具体代码可以参考我在这个问题里的回答:sklearn onehotencoder的具体用法是什么
相关主题
sklearn错误ImportError: cannot import name 'joblib'
1回答
sklearn.linear_model.SGDClassifier中的参数n_iter设置问题
2回答
sklearn训练classifier的时候报错Unknown label type
1回答
求sklearn.pipeline.Pipeline使用的例子
1回答
sklearn onehotencoder的具体用法
2回答
查看sklearn版本
1回答
我们谢绝在回答前讲“生动”的故事。
我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。
我们谢绝答非所问。
我们谢绝自己不会、硬要回答。
我们感激每一个用户在编写答案时的努力与付出!