Python 使用OneHotEncoding更改分类变量时出现问题

Python 使用OneHotEncoding更改分类变量时出现问题,python,python-3.x,one-hot-encoding,Python,Python 3.x,One Hot Encoding,我有一个列性别值为男性(1)和女性(0)。当我使用以下代码对性别列进行onehotencode编码时: onehotencoder = OneHotEncoder(categorical_features=['gender']) data = onehotencoder.fit_transform(data).toarray() 我得到以下错误: IndexError: arrays used as indices must be of integer (or boolean) type 以

我有一个列性别值为男性(1)和女性(0)。当我使用以下代码对性别列进行onehotencode编码时:

onehotencoder = OneHotEncoder(categorical_features=['gender'])
data = onehotencoder.fit_transform(data).toarray()
我得到以下错误:

IndexError: arrays used as indices must be of integer (or boolean) type

以下说明可在OneHotEncoder的文档中找到:

category_功能:“全部”或索引或掩码数组,默认值为“全部”
指定哪些功能被视为分类功能。
“全部”:所有功能都被视为分类功能。
索引数组:分类特征索引数组。
掩码:长度n_特征的数组,其dtype=bool。

因此,您应该传递列的索引,而不是传递列的名称,这样可以解决您的问题


顺便说一下,请注意文档中所述的弃用:
自0.20版以来已弃用:Category_features关键字在0.20版中已弃用,将在0.22版中删除。您可以改用ColumnTransformer。