如何将lambda函数应用于多列

2024-10-04 01:35:39 发布

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

我有一个数据帧,需要对多个列应用相同的lambda函数。你知道吗

样本数据:

col1                    col2                  col3 
xxx;#2;yyy              zzz;#46;zyzcz        1
aaa;#3;bbbccc           bbbb;cccc;dd#5        2

我需要清理,结果如下:

col1                    col2                  col3 
xxx;yyy                 zzz;zyzcz             1
aaa;bbbccc              bbbb;cccc;dd          2

我使用的功能:

def cleanDigit(row):
    replacements = [('\d', ''), ('#', ''), (';;', ';')]

    for (old, new) in replacements: 
        row = re.sub(old, new, row)

    return row

将函数应用于多列的代码:

df[['col1', 'col2']] = df[['col1', 'col2']] .apply(lambda r: cleanDigit(r))

错误消息:

TypeError: ('expected string or buffer', u'occurred at index col1')


Tags: 数据lambda函数col2col3col1xxxcccc