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

2024-06-26 01:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集,列名有拼写错误,比如“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来执行该操作呢?你知道吗


Tags: columns数据lambdainselfreturn管道def
1条回答
网友
1楼 · 发布于 2024-06-26 01:49:57

“不起作用”,我想你的意思是数据帧不见了,只有列名出来了。你知道吗

试试这个:

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

相关问题 更多 >