python - 拟合 ColumnTransformer 时出现 ValueError
问题描述
我正在尝试在我的数据集上安装一个 ColumnTransformer,它有 6 列(标记为 C1、C2、... C6)。我编写了以下代码来创建我的转换器。
dummyData = pd.DataFrame({
'C1' : ['2017-01-01', '2017-01-02','2017-01-03','2017-01-04','2017-01-05'],
'C2' : ['W1','W2','W3','W4','W5'],
'C3' : [np.NaN, np.NaN, 213727, 213613, 217636],
'C4' : [np.NaN,0,3,2.5,np.NaN],
'C5' : [0,0,3,5.5,5.5],
'C6' : [487.15,273.15,364.15,463.25,373.15]
})
preprocessor = ColumnTransformer(transformers = [
('missing_ind',MissingIndicator(), ['C3','C4']),
('impute_num',SimpleImputer(strategy='median'),['C3','C4','C5']),
('ordinalEncoder', OrdinalEncoder(), ['C2']),
('scaler', StandardScaler())
], remainder='passthrough')
precprocessor.fit_transform(dummyData)
但是我收到以下错误。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-84099700df4f> in <module>()
----> 1 preprocessor.fit(dummyData)
2 frames
/usr/local/lib/python3.6/dist-packages/sklearn/compose/_column_transformer.py in _validate_transformers(self)
271 return
272
--> 273 names, transformers, _ = zip(*self.transformers)
274
275 # validate names
ValueError: not enough values to unpack (expected 3, got 2)
我不确定是什么导致了这个错误,希望能得到帮助。
解决方案
阅读错误代码我们可以看到两件事:
- 错误源于我们只给需要三个值的函数提供两个值
- 我们可以看到错误发生在我们尝试适配 ColumnTransformer 时,更具体地说,是在我们设置单个转换器时。
使用该信息并查看此信息:
preprocessor = ColumnTransformer(transformers = [
('missing_ind',MissingIndicator(), ['C3','C4']),
('impute_num',SimpleImputer(strategy='median'),['C3','C4','C5']),
('ordinalEncoder', OrdinalEncoder(), ['C2']),
('scaler', StandardScaler())
], remainder='passthrough')
我们可以看到,除了最后一个缩放器之外,每个其他转换器都被赋予了 3 个值(名称、转换器、列)。
指定你希望最后一个缩放器影响的列,因此给它它需要的第三个值,将消除错误。
推荐阅读
- django - 如何将 td 值从 html 模板传递到我的 views.py
- c# - C# 使用用户控件中的按钮从标签更改文本
- python - 大型数据集上的分类模型
- json - 根据条件从数组中删除对象
- swift - SwiftUI - 使用带有枚举的选择器和提供的值并返回正确的 tag()
- php - 如何使用 Nestbost/Carbon 将日期时间字符串解析为日期?
- python - 如何创建可在 python 中选择的动态装饰(包装)函数?
- javascript - Ionic Reactjs 解析错误:基于选择框渲染元素时需要表达式
- node.js - Express 中间件如何获取 post 请求以编写逻辑
- data-structures - 日志搜索服务的数据结构?