Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将pandas操作集成到sklearn管道中_Python_Pandas_Class_Scikit Learn_Pipeline - Fatal编程技术网

Python 如何将pandas操作集成到sklearn管道中

Python 如何将pandas操作集成到sklearn管道中,python,pandas,class,scikit-learn,pipeline,Python,Pandas,Class,Scikit Learn,Pipeline,我对熊猫数据帧有一个简单的操作,如下所示: # initialization dct = {1: 'A', 2:'B', 3: 'C'} df = pd.DataFrame({'id': [1,2,3], 'value':[7,8,9]}) # actual transformation df['newid'] = df.id.map(dct) 我想将此转换作为sklearn管道的一部分。我找到了一些教程,还有。但我就是不能让它为我工作。以下是我尝试过的许多版本的一个版本: # initial

我对熊猫数据帧有一个简单的操作,如下所示:

# initialization
dct = {1: 'A', 2:'B', 3: 'C'}
df = pd.DataFrame({'id': [1,2,3], 'value':[7,8,9]})
# actual transformation
df['newid'] = df.id.map(dct)
我想将此转换作为sklearn管道的一部分。我找到了一些教程,还有。但我就是不能让它为我工作。以下是我尝试过的许多版本的一个版本:

# initialization
dct = {1: 'A', 2:'B', 3: 'C'}
df = pd.DataFrame({'id': [1,2,3], 'value':[7,8,9]})

# define a class similar to those in the tutorials
class idMapper(BaseEstimator, TransformerMixin):
    def __init__(self, key='id'):
        self.key = key

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        return X[key].map(dct)

# Apply the transformation
idMapper.fit_transform(df)

错误消息如下:
TypeError:fit\u transform()缺少1个必需的位置参数:“X”
。有人能帮我解决这个问题并让它工作吗?谢谢

请参见下面代码的更正版本。评论中给出的解释

dct = {1: 'A', 2:'B', 3: 'C'}
df = pd.DataFrame({'id': [1,2,3], 'value':[7,8,9]})

# define a class similar to those in the tutorials
class idMapper(BaseEstimator, TransformerMixin):
    def __init__(self, key='id'):
        self.key = key

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        return X[self.key].map(dct)  # <--- self.key

# Apply the transformation
idMapper().fit_transform(df)  # <--- need to instantiate
dct={1:A',2:B',3:C'}
df=pd.DataFrame({'id':[1,2,3],'value':[7,8,9]})
#定义与教程中类似的类
类idMapper(基估计器、变换器):
定义初始化(self,key='id'):
self.key=key
def配合(自身、X、y=无):
回归自我
def变换(自,X):

返回X[self.key].map(dct)#请参见下面的代码更正版本。评论中给出的解释

dct = {1: 'A', 2:'B', 3: 'C'}
df = pd.DataFrame({'id': [1,2,3], 'value':[7,8,9]})

# define a class similar to those in the tutorials
class idMapper(BaseEstimator, TransformerMixin):
    def __init__(self, key='id'):
        self.key = key

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        return X[self.key].map(dct)  # <--- self.key

# Apply the transformation
idMapper().fit_transform(df)  # <--- need to instantiate
dct={1:A',2:B',3:C'}
df=pd.DataFrame({'id':[1,2,3],'value':[7,8,9]})
#定义与教程中类似的类
类idMapper(基估计器、变换器):
定义初始化(self,key='id'):
self.key=key
def配合(自身、X、y=无):
回归自我
def变换(自,X):

返回X[self.key].map(dct)#此外,您可能需要编写一个方法
逆变换()
来恢复值。同样,您可能需要编写一个方法
逆变换()
来恢复值