Если вы не возражаете, mlxtend
, в нем есть встроенный преобразователь для этого.
Использование mlxtend
from mlxtend.feature_selection import ColumnSelector
pipe = ColumnSelector(mycols)
pipe.fit_transform(df)
Использование sklearn
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.pipeline import Pipeline
class FeatureSelector(BaseEstimator, TransformerMixin):
def __init__(self, columns):
self.columns = columns
def fit(self, X, y=None):
return self
def transform(self, X, y=None):
return X[self.columns]
pipeline = Pipeline([('selector', FeatureSelector(columns=mycols))
])
pipeline.fit_transform(df)[:5]