【发布时间】:2019-02-25 02:24:38
【问题描述】:
假设我有一个带有以下列名称的 pandas 数据框:
-
'age'(例如 33、26、51 等) -
'seniority'(例如“初级”、“高级”等) -
'gender'(例如“男”、“女”) -
'salary'(例如 32000、40000、64000 等)
我想将seniority 分类变量转换为一个热编码值。出于这个原因,我正在做以下事情:
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
data['seniority'] = label_encoder.fit_transform(data['seniority'])
from sklearn.preprocessing import OneHotEncoder
one_hot_encoder = OneHotEncoder(categorical_features=[1])
data = one_hot_encoder.fit_transform(data.values)
但是我得到了这个错误
ValueError: could not convert string to float: 'gender'
一行
data = one_hot_encoder.fit_transform(data.values)
但是,我已明确指定 categorical_features=[1],因此只有第 1 列 (seniority) 应考虑用于此热编码。
我该如何解决这个错误(例如删除“性别”列除外)?
我过去使用pandas.get_dummies,没有遇到这个问题。
【问题讨论】:
标签: python scikit-learn one-hot-encoding