我经常收到数据csv文件,其中列标题充满了html垃圾 - 比如说:
"Do you like to VOTE _-<span style="font-size:16px;">in accordance with
your feelings </span>"
这是一个很难处理的问题,因此我会用可管理的东西替换垃圾:
data = data.rename(columns={'Do you like to VOTE _-<span style="font-size:16px;">in accordance with your feelings </span>':'VOTE'})
问题是垃圾中的'_'字符不是常数:有时它是一个空白区域,有时它是一个问号等。这意味着我必须手动指定角色,这会破坏整个目的。
所以,我的问题是,是否可以指定一个通配符,我可以代替下划线来允许所有可能的情况?我知道可能有一个正则表达式的方法,但我想知道我是否遗漏了一些更基本的东西,因为这看起来应该是一件简单易行的事情?
答案 0 :(得分:2)
您可以使用re
模块并使用正则表达式替换
import re
f = lambda x: re.sub(r'.*VOTE.*', 'VOTE', x)
df.rename(columns=f, inplace=True)
或者您可以在str.replace
对象
columns
方法
df.columns = df.columns.str.replace(r'.*VOTE.*', 'VOTE')