Вы можете использовать панд .apply
и re.sub
для удаления [^A-Z ]+
, т. Е .:
import pandas as pd
import re
test = ['2694 A&W #5530 MONTREAL QC', 'ahi DOLLARAMA # 45 MONTREAL QC', 'PC - PAYMENT FROM - *****11*22']
def change_me(content):
content = re.sub(r"[^A-Z ]+", "", content, 0, re.IGNORECASE)
return re.sub(r"[ ]{2,}", " ", content, 0, re.IGNORECASE)
df = pd.DataFrame({'Desc':test})
df.Desc = df.Desc.apply(change_me)
Desc
0 AW MONTREAL QC
1 ahi DOLLARAMA MONTREAL QC
2 PC PAYMENT FROM
Демонстрация и объяснение регулярных выражений
PS:
Пожалуйста, прочитайте комментарий @ ami, .str.replace()
- подходящая функция для такого рода задач.