Python sklearn ColumnTransformer不适用于熊猫数据帧

Python sklearn ColumnTransformer不适用于熊猫数据帧,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,我有以下代码。我想做的是对数据帧的每一列应用不同的转换器。首先,我只想让我的两列不经过任何转换就通过 将熊猫作为pd导入 从sklearn.compose导入ColumnTransformer df=pd.DataFrame({'pre0':[2,0,1,2],'pre1':[99,56,85,78]}) 列元数据=[(“p1”、“直通”、“pre0”),(“p2”、“直通”、“pre1”)] 列变压器=列变压器(变压器=列元数据) X_uu=列_u变换器。拟合_u变换(df) 我得到以下错误

我有以下代码。我想做的是对数据帧的每一列应用不同的转换器。首先,我只想让我的两列不经过任何转换就通过

将熊猫作为pd导入
从sklearn.compose导入ColumnTransformer
df=pd.DataFrame({'pre0':[2,0,1,2],'pre1':[99,56,85,78]})
列元数据=[(“p1”、“直通”、“pre0”),(“p2”、“直通”、“pre1”)]
列变压器=列变压器(变压器=列元数据)
X_uu=列_u变换器。拟合_u变换(df)
我得到以下错误:

ValueError:“p1”转换器的输出应为2D(scipy矩阵、数组或数据帧)。

这很奇怪,因为熊猫数据框的列应该已经是一维的了。我在这里做错了什么?

我想可能是在列的定义中,例如:

columnsstr,类似数组的str,int,类似数组的int,类似数组的bool,slice或callable。在数据的第二个轴上对数据进行索引。整数被解释为位置列,而字符串可以按名称引用数据帧列。如果transformer希望X是类似1d的数组,则应使用标量字符串或int。”(vector),否则将向转换器传递2d数组。可调用数组将传递输入数据X,并可返回上述任何一个。要按名称或数据类型选择多个列,可以使用make_column_选择器。“

实际上。而不是

column_meta_data = [("p1", "passthrough", "pre0"), ("p2", "passthrough", "pre1")]
这个:

column_meta_data = [("p1", "passthrough", ["pre0"]), ("p2", "passthrough", ["pre1"])]


我认为可能在列的定义中,例如:

columnsstr,类似数组的str,int,类似数组的int,类似数组的bool,slice或callable。在数据的第二个轴上对数据进行索引。整数被解释为位置列,而字符串可以按名称引用数据帧列。如果transformer希望X是类似1d的数组,则应使用标量字符串或int。”(vector),否则将向转换器传递2d数组。可调用数组将传递输入数据X,并可返回上述任何一个。要按名称或数据类型选择多个列,可以使用make_column_选择器。“

实际上。而不是

column_meta_data = [("p1", "passthrough", "pre0"), ("p2", "passthrough", "pre1")]
这个:

column_meta_data = [("p1", "passthrough", ["pre0"]), ("p2", "passthrough", ["pre1"])]