Для одного горячего кодирования я бы посоветовал вам использовать pd.get_dummies
, гораздо проще в использовании:
# make sure Z is a dataframe
X = pd.get_dummies(Z).values
Если вы хотите использовать OHE от sklearn, вы можете обратиться к следующему примеру:
from sklearn.preprocessing import StandardScaler, LabelEncoder, OneHotEncoder
df = pd.DataFrame({'a':['audi','porsche','audi'], 'b':[1,2,3]})
ohe = OneHotEncoder()
mat = ohe.fit_transform(df[['a']])
# view the contents of array
mat.todense()
matrix([[1., 0.],
[0., 1.],
[1., 0.]])
# get feature names
ohe.get_feature_names()
array(['x0_audi', 'x0_porsche'], dtype=object)