Python 在我的M.L.管道中使用自定义变压器时;缺少位置参数“;错误

Python 在我的M.L.管道中使用自定义变压器时;缺少位置参数“;错误,python,scikit-learn,Python,Scikit Learn,我犯了一个错误 TypeError: transform() missing 1 required positional argument: 'df_test' 我得到了以下代码的上述错误。我理解它将第一个参数“X_train_master”作为自己,因此需要第三个参数。但事实并非如此。 如果我将transform_cat函数的定义更改为 class transform_cat(BaseEstimator,TransformerMixin): def __init__(self

我犯了一个错误

TypeError: transform() missing 1 required positional argument: 'df_test'
我得到了以下代码的上述错误。我理解它将第一个参数“X_train_master”作为自己,因此需要第三个参数。但事实并非如此。 如果我将transform_cat函数的定义更改为

    class transform_cat(BaseEstimator,TransformerMixin):
    def __init__(self , col_name_list):
        self.col_name_list = col_name_list
    def fit(self ,X,y=None):
        return self
    def transform(self,df):
        df_copy = df.copy()
        #df_append = df.copy()
        #df_append = df_append.append(df_test)
        for col_name in  self.col_name_list:
            lable_dict = labling_class(df_copy,col_name)
            replace_dict = {col_name : lable_dict}
            df_copy.replace(replace_dict, inplace=True)
        return df_copy 

并称之为使用

processed_data = Data_labeling.fit_transform( X_train_master)
它很好用。有人能指出在这种情况下出现了什么问题吗?

只需更换:

 Data_labeling.fit_transform( X_train_master, X_test_master ) 
与:

最低限度的解释:

def bar(x, y=None, **kw):
    return foo(x, **kw)  

def foo(x, z):
    pass

>> bar(4, 6)

>> Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 2, in bar
TypeError: foo() missing 1 required positional argument: 'z'

>> bar(4, z=6) #runs ok
def条(x,y=None,**kw):
返回foo(x,**千瓦)
def foo(x,z):
通过
>>巴(4,6)
>>回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第2行,条形图
TypeError:foo()缺少1个必需的位置参数:“z”
>>棒(4,z=6)#运行正常

您能提供您的代码吗?目前无法复制,因为例如“X_train_master”未定义,很抱歉答复太晚,但即使这样似乎也不起作用。我更感兴趣的是理解为什么在上述情况下它会忽略作为第一个参数传递的self。还是由于某种原因,对象的自身没有被传递给方法
 Data_labeling.fit_transform( X_train_master, df_test=X_test_master ) 
def bar(x, y=None, **kw):
    return foo(x, **kw)  

def foo(x, z):
    pass

>> bar(4, 6)

>> Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 2, in bar
TypeError: foo() missing 1 required positional argument: 'z'

>> bar(4, z=6) #runs ok