Я хочу установить несколько регулярных выражений, которые при совпадении должны заменяться определенным значением. Например, я пишу регулярное выражение re.search('QuickPay with Zelle payment to *', re.IGNORECASE)
, и в случае совпадения в столбце DataFrame я хочу заменить его на «Payment to *». Я хочу иметь несколько таких пар ключей-значений регулярных выражений.
В качестве практического примера, если столбец имеет «QuickPay с Zelle payment to Zack», его следует заменить на «Payment to Zack». Если в столбце указано «QuickPay с платежом Zelle от Zack», его следует заменить на «Payment from Zack». Если есть совпадение для *DD BR*
, его следует заменить на «Пончики Данкина» и несколько таких случаев. Я хочу, чтобы это было сделано автоматически, где я могу просто добавить к парам ключ-значение и затем улучшить свою функцию очистки.
Я пытался использовать df.apply()
и df.replace()
, но не знал, куда go оттуда.
Вот соответствующий код:
import pandas as pd
import re
filterMap = {
re.search('QuickPay with Zelle payment to ', re.IGNORECASE): 'Payment to',
re.search('QuickPay with Zelle payment from ', re.IGNORECASE): 'Payment from'
}
df = pd.read_csv('./data/data.csv', header=None, skiprows=[0], usecols=[1, 2, 3])
date = df[1]
amount = df[3]
title = df[2]
cleanTitle = title.replace(to_replace=filterMap, value=filterMap)
print(cleanTitle)