我有一个数据帧,需要对多个列应用相同的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')
使用^{} ,lambda函数也应为省略且仅传递函数:
相关问题 更多 >
编程相关推荐