我有以下代码。我想做的是对数据帧的每一列应用不同的转换器。首先,我只想让我的两列不经过任何转换就通过
import pandas as pd
from sklearn.compose import ColumnTransformer
df = pd.DataFrame({'pre0': [2, 0, 1, 2], 'pre1': [99, 56, 85, 78]})
column_meta_data = [("p1", "passthrough", "pre0"), ("p2", "passthrough", "pre1")]
column_transformer = ColumnTransformer(transformers=column_meta_data)
X_ = column_transformer.fit_transform(df)
我得到以下错误:
ValueError: The output of the 'p1' transformer should be 2D (scipy matrix, array, or pandas DataFrame).
这很奇怪,因为熊猫数据框的列应该已经是一维的了。我做错了什么
我想在列的定义中,比如在here中:
“columnsstr,类似数组的str,int,类似数组的int,类似数组的bool,slice或callable。在数据的第二个轴上对数据进行索引。整数被解释为位置列,而字符串可以按名称引用数据帧列。如果transformer希望X是类似1d的数组,则应使用标量字符串或int。”(vector),否则将向转换器传递2d数组。可调用数组将传递输入数据X,并可返回上述任何一个。要按名称或数据类型选择多个列,可以使用make_column_选择器。“
实际上。而不是
这个:
或
相关问题 更多 >
编程相关推荐