Более подход, основанный на использовании pandas, заключается в применении функции замены, как показано ниже:
def multiple_replace(dict, text):
# Create a regular expression from the dictionary keys
regex = re.compile("(%s)" % "|".join(map(re.escape, dict.keys())))
# For each match, look-up corresponding value in dictionary
return regex.sub(lambda mo: dict[mo.string[mo.start():mo.end()]], text)
После того, как вы определили функцию, вы можете применить ее к вашему фреймворку данных.
di = {1: "A", 2: "B"}
df['col1'] = df.apply(lambda row: multiple_replace(di, row['col1']), axis=1)
Я не вижу никакого вреда, пока данные меньше - но лучше отфильтровать данные на уровне БД, чтобы избежать возможных ошибок нехватки памяти.