2 回答
TA贡献2041条经验 获得超4个赞
是的,有一种方法可以做到这一点,幸运地包含在 SKLearn 中。在ColumnTransformer的原始文档中,您可以找到令人困惑但有用的一行,如下所示:
变压器{'drop'、'passthrough'} 或估算器
Estimator 必须支持拟合和变换。特殊情况的字符串 'drop' 和 'passthrough' 也被接受,分别表示删除列或将它们传递给未转换的列。
这意味着如果您想在 期间保留一列ColumnTransformer或在 期间删除一列ColumnTransformer,您可以简单地使用两个特殊大小写的字符串之一来指示它,就像这样:
column_trans = ColumnTransformer(
[('r_std', StandardScaler(), ['r']),
('f_std', StandardScaler(), ['f']),
('m_std', StandardScaler(), ['m']),
('r_boxcox', PowerTransformer(method='box-cox'), ['r']),
('f_boxcox', PowerTransformer(method='box-cox'), ['f']),
('m_boxcox', PowerTransformer(method='box-cox'), ['m']),
('col_keep', 'passthrough', ['r','f','m'])
])
如果您然后使用ColumnTransformer,那 3 列将被保留并且不会被删除。或者,如果您使用'drop'代替'passthrough',则可以有选择地删除某些列。这remainder='passthrough'将允许您删除一些列并保留所有其他列。希望这个对你有帮助!
添加回答
举报