如何应用lambda函数清除熊猫中的列名?

时间:2019-06-17 04:10:11

标签: python pandas pipeline

我有一个数据集,其列名带有错别字,例如“ 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来执行该操作?

1 个答案:

答案 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))            
            ])