Skip to content Skip to sidebar Skip to footer

TypeError: Fit_transform() Takes 2 Positional Arguments But 3 Were Given

I have pandas DataFrame df. I want to encode continuous and categorical features of df using different encoders. I find it very comfortable to use make_column_transformer, but the

Solution 1:

According to https://scikit-learn.org/stable/modules/generated/sklearn.compose.make_column_transformer.html.

make_column_transformer(
...     (StandardScaler(), ['numerical_column']),
...     (OneHotEncoder(), ['categorical_column']))

So for your case:

from sklearn.compose import make_column_transformer
from sklearn.preprocessing import RobustScaler, OneHotEncoder, LabelEncoder

continuous_features = ['COL1','COL2']       
categorical_features = ['COL3','COL4']

column_trans = make_column_transformer(
    (OneHotEncoder(), categorical_features),
    (RobustScaler(), continuous_features))

X_enc = column_trans.fit_transform(df)

If you want to use LabelEncoder(), you can only pass one column, not two!

Hope this helps.


Post a Comment for "TypeError: Fit_transform() Takes 2 Positional Arguments But 3 Were Given"