Ich habe den folgenden DF und möchte die One-Hot-Codierung nur für die Spalte "Land" durchführen.
Country | Age
--------------------------
Germany | 23
Spain | 25
Germany | 24
Italy | 30
Bis zur Version 0.20 von scikitlearn mussten Sie lediglich den Index der Spalte, die Sie für die One-Hot-Codierung ausführen möchten, in "categoryical_features" angeben. Mit anderen Worten, es sieht so aus.
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_features=[0])
X = onehotencoder.fit_transform(X)
Ab scikitlearn Version 0.23 wird "ColumnTransformer" für solche Muster verwendet, die für jede Spalte unterschiedlich verarbeitet werden. Vergessen Sie nicht, "rest =" Passthrough "" anzugeben, damit die nicht abgedeckten Spalten erhalten bleiben.
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
column_trans = ColumnTransformer(transformers=[('categorical', OneHotEncoder(), [0])],
remainder="passthrough")
X = column_trans.fit_transform(X)