Я хотел бы взять логарифм указанных c столбцов моего информационного кадра. Я создал новый объект-преобразователь:
from sklearn.preprocessing import FunctionTransformer
log_transformer = FunctionTransformer(np.log10, validate=True)
, и он прекрасно работает с одним конкретным c столбцом моего фрейма данных:
log_transformer.transform(df['_column'])
Также можно также перезаписать указанный столбец c исходного кадра данных, например:
df[['_column']]=log_transformer.transform(df[['_column']])
Однако эта операция затем изменяет исходный кадр данных и не будет полезна в конвейере. .
Когда я пытаюсь включить этот объект-преобразователь в ColumnTransformer
, я получаю сообщение об ошибке: columnTransformer = ColumnTransformer([('log_transform', log_transformer.transform(), [0,5)], remainder='passthrough')
Как передать пользовательский объект-преобразователь в ColumnTransformer
? (Тот же самый синтаксис будет очень хорошо работать для встроенных преобразователей, как предложено в этой статье: https://towardsdatascience.com/columntransformer-in-scikit-for-labelencoding-and-onehotencoding-in-machine-learning-c6255952731b)
Спасибо за вашу помощь!