Kolumntransformator
Svep för att visa menyn
Vid anrop av .fit_transform(X) på en Pipeline tillämpas varje transformerare på alla kolumner, vilket inte alltid är önskvärt. Vissa kolumner kan kräva olika kodare — till exempel OrdinalEncoder för ordnade variabler och OneHotEncoder för nominella variabler.
ColumnTransformer löser detta genom att låta dig tilldela olika transformerare till specifika kolumner med hjälp av make_column_transformer.
make_column_transformer accepterar tupler av (transformer, [columns]).
Till exempel, tillämpa OrdinalEncoder på 'education' och OneHotEncoder på 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
remainder styr vad som händer med ospecificerade kolumner.
Standard: 'drop'.
För att behålla alla andra kolumner oförändrade, ange remainder='passthrough'.
Till exempel, överväg filen exams.csv. Den innehåller flera nominala kolumner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') och en ordinal kolumn, 'parental level of education'.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') print(df.head())
Med hjälp av ColumnTransformer kan nominella data transformeras med OneHotEncoder och ordnala data med OrdinalEncoder i ett enda steg.
12345678910111213from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) print(ct.fit_transform(df))
ColumnTransformer är i sig själv en transformerare, så den tillhandahåller de standardiserade metoderna .fit(), .fit_transform() och .transform().
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal