J'ai le DF suivant et je souhaite effectuer un encodage One-Hot uniquement pour la colonne Country.
Country | Age
--------------------------
Germany | 23
Spain | 25
Germany | 24
Italy | 30
Jusqu'à la version 0.20 de scikitlearn, tout ce que vous aviez à faire était de spécifier l'index de la colonne que vous voulez faire l'encodage One-Hot dans categorical_features
.
En d'autres termes, cela ressemble à ceci.
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_features=[0])
X = onehotencoder.fit_transform(X)
À partir de la version 0.23 de scikitlearn, ColumnTransformer
est utilisé pour ces modèles qui sont traités différemment pour chaque colonne.
N'oubliez pas de spécifier restder =" passthrough "
pour quitter les colonnes qui ne sont pas couvertes.
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)