【发布时间】:2020-09-02 09:29:10
【问题描述】:
我有一个数据框,其中多个列可以包含特定的正则表达式。我的正则表达式匹配我有可变数量的大写字母后跟一个空格和数字的模式。
import pandas as pd
pattern = re.compile(r"[A-Z]+\s\d+")
df = pd.DataFrame({'Title':['Foo ABC 1234', 'Correct Foo BCD1234', 'Still Wrong DEEF 9345'],
'Description':['Nothing special here XYC1235', 'This is a normal description.', 'This contains BDE 234'],
'Numbers':['BCD1234', 'XYC1235', 'DKO 15000']})
我只想在所有已定义的列['Title', 'Description', 'Numbers'] 中找到这些匹配项,并删除单数空格,例如:
ABC 1234 ---> ABC1234
我有什么办法可以做到这一点吗?
到目前为止,我尝试使用 re.findall(),但它只返回匹配列表,当我尝试替换子字符串时,它不会修改原始数据帧。
【问题讨论】:
标签: python regex pandas dataframe