我正在尝试使用涉及以下三个步骤的sklearn管道。 1.从数据框中提取一列 2.处理字符串以返回第一个字符 3.将字符转换为ordinalFeature
我尝试了以下管道
def extract_first(X):
" returns a Pandas Series with the first element of each value in the Series"
return X.apply(lambda x: str(x)[0])
code_pipe = Pipeline(steps= [
('fs', FeatureSelector(['Cabin'])),
('extract_Cabin', FunctionTransformer(extract_Cabin)),
('ordinalEncoding', OrdinalEncoder())
])
失败,并显示错误-
ValueError:预期的2D数组,取而代之的是1D数组: array = ['0']。如果数据具有单个特征,则使用array.reshape(-1,1)对其数据进行整形;如果数据包含单个样本,则使用array.reshape(1,-1)对数据进行整形。