Pandas DataFrame 中的 Neuraxle Select 列

Neuraxle Select Columns in Pandas DataFrame

从数据集中 select 列子集的 NeurAxle 方法是什么?这就是我通过 sklearn 做的:

class ColumnSelectTransformer(BaseEstimator, TransformerMixin):
    def __init__(self, columns):
        self.columns = columns

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        if not isinstance(X, pd.DataFrame):
            X = pd.DataFrame(X)
        return X[self.columns]



# Set up SIMPLE FEATURES
simple_cols = ['BEDCERT', 'RESTOT', 'INHOSP', 'CCRC_FACIL',
               'SFF', 'CHOW_LAST_12MOS', 'SPRINKLER_STATUS',
               'EXP_TOTAL', 'ADJ_TOTAL']
    
simple_features = Pipeline([
    ('cst', ColumnSelectTransformer(simple_cols)),
    ('impute', SimpleImputer())
])

编辑:-

我认为这是一个解决方案,但我不是 100% 相信。

class ColumnSelectTransformer(BaseTransformer, ForceHandleMixin):

    def __init__(self, required_columns):
        BaseTransformer.__init__(self)
        ForceHandleMixin.__init__(self)
        self.required_columns = required_columns

    def inverse_transform(self, processed_outputs):
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        if not isinstance(X, pd.DataFrame):
            X = pd.DataFrame(X)
        return X[self.required_columns]

更新:已修复。请在此处查看列转换器的用法示例: https://www.neuraxle.org/stable/examples/sklearn/plot_cyclical_feature_engineering.html#sphx-glr-examples-sklearn-plot-cyclical-feature-engineering-py


这个问题已经存在:https://github.com/Neuraxio/Neuraxle/issues/168

我暂时不想使用 Pandas,而是使用提供的 ColumnTransformer:https://www.neuraxle.org/stable/api/neuraxle.steps.column_transformer.html

如果您对 Pandas Transformer 进行了完整编码(并进行了适当的单元测试),我们很高兴通过在 Neuraxle 上打开拉取请求并将您添加为贡献者来获得您的贡献。

在那之前,您可以编写一个简单的 PandasToNumpy 步骤,该步骤将 return .values 调用 transform,然后使用现有的 ColumnTransformer Neuraxle 通过提供所需列的整数而不是字符串。

另请注意,您可以从 NonFittableMixin 继承以将 fit 覆盖为 return 自身,而无需额外代码。