我想在单一分类列中使用 OneHotEncoder

I want to use OneHotEncoder in Single Categorical column

这里 df 的形状是 (190,2),其中第一列是 x 并且是一个分类值,@nd 列是整数。

X = df.iloc[:,0].values
y = df.iloc[:,-1].values

# Encoding categorical data

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X = labelencoder.fit_transform(X)
X.reshape(-1,1)
onehotencoder = OneHotEncoder(categories = [0])
X = onehotencoder.fit_transform(X).toarray()

这里我想使用 OneHotEncoder 更改分类值 X 来预测 y。但是当我 运行 这段代码时,我收到一个错误。

ValueError: bad input shape ()

谁能帮我解决这个问题。谢谢

目前OneHotEncoder不要求输入特征是数字。所以你可以直接给它提供分类特征:

onehotencoder = OneHotEncoder()
X_oh = onehotencoder.fit_transform(X).toarray()

1D 数组的情况下,通常是 y 的情况,您需要将数组重塑为 2D 一个:

onehotencoder = OneHotEncoder()
X_oh = onehotencoder.fit_transform(X.reshape(-1,1)).toarray()

但请注意以下内容:

X.reshape(-1,1)

没有做任何事情。它不执行就地操作。您必须将其分配回变量。