Я работаю с набором данных Titanic, пытаясь создать собственный преобразователь, который будет складывать два столбца и выводить массив результатов с помощью метода fit_transform в конвейере.
Я создал класс "dfSelector", который выбирает два интересующих столбца, "SibSp" и "Parch", и создал следующий класс "family_size", чтобы добавить два. В конвейере также есть средство для обработки любых нулевых записей в кадре данных.
class family_size(BaseEstimator, TransformerMixin):
def __init__(self, sibsp, parch):
self.sibsp = sibsp
self.parch = parch
def fit(self, X, y=None):
return self
def transform(self, X, y=None):
family = (self.sibsp + self.parch)
return family
# Run through a pipeline with an imputer to take care of 'nan' rows
family_pipeline = Pipeline([('column_selector', dfSelector(['SibSp', 'Parch'])),
('num_imputer', SimpleImputer(strategy='median')),
('family_encoder', family_size(['SibSp', 'Parch'])),
])
family_pipeline.fit_transform(traindf)
TypeError __init__() missing 1 required positional argument: 'parch'
Как мне получить массив с суммой двух столбцов?