[PYTHON] Teilweise One-Hot-Codierung

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)

Referenz

Recommended Posts

Teilweise One-Hot-Codierung
"Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen
Python-Codierung