我对pandas数据框有一个简单的操作,如下所示:
# 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管道的一部分。我找到了一些教程
here
我是说,
here
,和
here
是的。但我就是不能让它为我工作。以下是我尝试过的许多版本的一个版本:
# 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_transform() missing 1 required positional argument: 'X'
是的。有人能帮我解决这个问题并让它正常工作吗?谢谢!