TypeError:向管道传递数据帧时,int对象不可下标

2024-09-28 01:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个用于数据预处理(编码文本数据和规范化)的管道。我有一个打字错误,我不能理解。发布代码的一部分。错误出现在代码的最后一行和最后第二行,我试图将数据帧传递给管道。非常感谢您的帮助或指导。谢谢:)

分离文本特征

HDFC_Working_Train_CN = HDFC_Working_Train.loc[ : ,['Candle Nature']]

HDFC_Working_Train_CT = HDFC_Working_Train.loc[ : ,['Candle Type']]

HDFC_Working_Train_DR = HDFC_Working_Train.loc[ : ,['Direction']]

HDFC_Working_Train_TR = HDFC_Working_Train.loc[ : ,['Target']]

分离数字特征

HDFC_Working_Train_num = HDFC_Working_Train.drop(['Candle Nature', 'Candle Type', 'Direction', 'Target'], axis = 1)

数据预处理

class DataFrameSelector(BaseEstimator, TransformerMixin):

    def __init__(self, attribute_names):
        self.attribute_names = attribute_names
    def fit(self, X, y=None):
        return self
    def transform(self, X):
        return X[self.attribute_names].values

范围(0,1)

num_pipeline_1 = Pipeline([

 ('selector_1', DataFrameSelector(list(HDFC_Working_Train_num))),

 ('scaler_1', MinMaxScaler(0, 1)),

 ])

最小-最大缩放范围(-1,1)

num_pipeline_2 = Pipeline([

 ('selector_2', DataFrameSelector(list(HDFC_Working_Train_num))),

 ('scaler_2', MinMaxScaler(-1, 1)),

 ])

编码蜡烛性质

cat_pipeline_1 = Pipeline([

 ('selector_1', DataFrameSelector(HDFC_Working_Train_CN)),

 ('label_binarizer_1', LabelBinarizer()),

 ])

编码蜡烛类型

cat_pipeline_2 = Pipeline([

 ('selector_2', DataFrameSelector(HDFC_Working_Train_CT)),

 ('label_binarizer_2', LabelBinarizer()),

 ])

编码方向

cat_pipeline_3 = Pipeline([

('selector_3', DataFrameSelector(HDFC_Working_Train_DR)),

('label_binarizer_3', LabelBinarizer()),

 ])

编码目标

cat_pipeline_4 = Pipeline([

 ('selector_4', DataFrameSelector(HDFC_Working_Train_TR)),

 ('label_binarizer_4', LabelBinarizer()),

])

创建具有(0,1)规范化的数据集

full_pipeline_1 = FeatureUnion(transformer_list=[

 ("num_pipeline_1", num_pipeline_1),

 ("cat_pipeline_1", cat_pipeline_1),

 ("cat_pipeline_2", cat_pipeline_2),

 ("cat_pipeline_3", cat_pipeline_3),

 ("cat_pipeline_4", cat_pipeline_4),

 ])

使用(-1,1)规范化创建数据集

full_pipeline_2 = FeatureUnion(transformer_list=[

 ("num_pipeline_2", num_pipeline_2),

 ("cat_pipeline_1", cat_pipeline_1),

 ("cat_pipeline_2", cat_pipeline_2),

 ("cat_pipeline_3", cat_pipeline_3),

 ("cat_pipeline_4", cat_pipeline_4),

 ])

HDFC_MM1 = full_pipeline_1.fit_transform(HDFC_Working_Train)

HDFC_MM2 = full_pipeline_2.fit_transform(HDFC_Working_Train)

错误如下:

TypeError回溯(最近一次调用上次)

<ipython-input-8-ff2f118d9924> in <module>


396  ])

397 

——>;398 HDFC_MM1=完整管道_1.拟合变换(HDFC_工作列)

399 

400 HDFC_MM2 = full_pipeline_2.fit_transform(HDFC_Working_Train)



TypeError: 'int' object is not subscriptable

Tags: 数据self编码pipelinetrainselectornumloc

热门问题