为多个变换器选择的列变换器列



我想通过ColumnTransformer类转换数据帧的列。为此,我使用make_column_selector函数通过指定数据类型或模式来分配转换器。我的问题是:如果一个专栏符合不止一个标准,会发生什么?。

示例:

我通过make_column_selector指定所有的dtypes float都应该通过StandardScaler。此外,我还指定所有具有模式binary_*的列都必须是OneHotEncoded。我的binary_*列也是一个浮点,它只接受值0和1。

这个列会被转换两次吗(一个是HotEncoding和StandardScaler(?它会首先被StandarScaler捕获,然后被OneHotEncoder忽略吗?

简言之,我想知道这些列是通过ColumnTransformer的不同变换器传播的,还是因为它们满足其中一个变换器的标准而被忽略了。

我自己也试过。ColumnTransformer的转换器以流水线方式连续执行。任何符合make_column_selector转换器中建立的条件的列都将通过转换器。

这意味着,如果一列满足一个或多个转换器的标准,它将被转换两次,并附加到生成的数据帧中。

最新更新