我有一个数据集,其列名带有错别字,例如“ Address%”,“ Unit”,我需要删除%并去除空白
仅在下面可以使用
X.columns = X.columns.str.replace('%', '')
X.columns = X.columns.str.strip()
但是我有一个管道类
class ApplyTransformer(TransformerMixin):
def __init__(self, func):
self.func = func
def fit(self, X, y = None):
return self
def transform(self, X):
X = self.func(X)
return X
创建了管道并使用了lambda函数,但无法正常工作,
pipeline = Pipeline([
('Remove %', ApplyTransformer(lambda X: ['' if '%' in x else x for x in X.columns] ))
])
那么如何编写lambda来执行该操作?
答案 0 :(得分:0)
通过“不起作用”,我认为您的意思是数据帧不见了,只有列名出来了。
尝试一下:
def my_column_name_changer (X):
X.columns = ['' if '%' in x else x for x in X.columns]
return X
pipeline = Pipeline([
('Remove %', ApplyTransformer(my_column_name_changer))
])