Can sklearn.compose.ColumnTransformer be used with a custom-defined transformer?

Viewed 184

I would like to take the logarithm of specific columns of my dataframe. I created a new transformer object:

from sklearn.preprocessing import FunctionTransformer log_transformer = FunctionTransformer(np.log10, validate=True)

and it works nicely on one specific column of my dataframe:

log_transformer.transform(df['_column']) Also, one could also overwrite the specific column of the original dataframe like:

df[['_column']]=log_transformer.transform(df[['_column']])

However, this operation then changes the original dataframe and wouldn't be useful in a pipeline.

When I try to include this transformer object into ColumnTransformer, I get an error message: columnTransformer = ColumnTransformer([('log_transform', log_transformer.transform(), [0,5)], remainder='passthrough')

How should I pass on the custom-defined transformer object to ColumnTransformer? (The same syntax would work very nicely for built-in transformers, as suggested in this article: https://towardsdatascience.com/columntransformer-in-scikit-for-labelencoding-and-onehotencoding-in-machine-learning-c6255952731b)

Thank you for your help!

0 Answers
Related