python - Columntransformer 为多个变压器选择的列
问题描述
我想通过 ColumnTransfomer 类转换数据框的列。为此,我使用make_column_selector函数通过指定 dtype 或模式来分配转换器。我的问题是:如果一列符合多个此标准,会发生什么情况?
例子:
我通过 make_column_selector 指定所有 dtypes 浮点数都应该通过 StandardScaler,此外我指定所有具有该模式的列都binary_*
必须是 OneHotEncoded。我的binary_*
列也是一个浮点数,它只取值 0 和 1。
此列是否会被转换两次(一个 HotEncoding 和 StandardScaler)?它会首先被 StandarScaler 捕获并被 OneHotEncoder 忽略吗?
简而言之,我想知道这些列是通过 ColumnTransformer 的不同变压器传播的,还是因为它们符合其中一个变压器的标准而被排除在外。
解决方案
我自己试过这个。ColumnTransformer 的转换器以流水线方式连续执行。任何符合 make_column_selector 中建立的标准的列都将通过转换器。
这意味着如果一列满足一个或多个转换器的标准,它将被转换两次并附加到结果数据帧中。
推荐阅读
- android - Why my MutableLiveData observer isn't triggered?
- google-sheets - Is there a way to use COUNTIF in Google Sheet to compare the occurrences of a value in ODD or EVEN increments for an inventory loan IN and OUT sheet
- reactjs - 反应过时状态 useCallback
- javascript - 运行一个有权限的排序
- firebase - 我是否必须在 Streambuilder 中使用 ListView 才能在 Flutter Firebase 中获取实时更新
- reactjs - react-i18next addResourceBundle 不是函数
- ios - SwiftUI Header 标题覆盖行视图
- blockchain - 来自 txn 哈希的区块链 bscscan 农业对信息
- python - 如何只允许更新 1 个字段?
- firebase - 使用 agora 和 firebase flutter 进行语音通话