Python 多列的多个子字符串替换

Python 多列的多个子字符串替换,python,python-3.x,pandas,replace,Python,Python 3.x,Pandas,Replace,我有一个数据集,由于数据输入的语言,它在几列中包含特殊字符转换。 我想将这些特殊字符表示替换为以下字典中定义的拉丁字符 replacements={"ı": "i", "Ä°": "i", "Ç": "c", "ç" : "c", "ü" : "u", "ÃŒ": "u", "ö" : "o", "Ö" : "o", "ÅŸ": "s", "Å?" : "s", "ÅŽ" : "s", "ÄŸ" : "g", "Ä?" : "g", "ÄŽ" : "g"} 正如

我有一个数据集,由于数据输入的语言,它在几列中包含特殊字符转换。 我想将这些特殊字符表示替换为以下字典中定义的拉丁字符

replacements={"ı": "i", "İ": "i", "Ç": "c", "ç" : "c", "ü" : "u", "Ì": "u", "ö" : "o", "Ö" : "o", "ş": "s",
          "Å?" : "s", "ÅŽ" : "s", "ÄŸ" : "g", "Ä?" : "g", "ÄŽ" : "g"}
正如可以看到的,有几个替换将被应用,因此使用replace()将不会是一个花哨的编码。一个字符串中可能有多个特殊字符子字符串,因此应为每个字符串执行所有这些子字符串。 此外,我需要将它们应用于数据帧的几列

DF[['NAME','SURNAME','ADDRESS','EMAIL']].

是否可以编写一个奇特的代码来替换字典中定义的所有字符并应用于多个列?

替换可以是一件事,只需对其进行迭代即可(但这并不是那么奇特)


使用
DF[['NAME','NAME','ADDRESS','EMAIL']=DF[['NAME','NAME','ADDRESS','EMAIL']]。替换(d,regex=True)
def rp(x):
   x = str(x).lower()
   for key, value in replacement.items():
        x.replace(key,value)
   return x

df = DF[['NAME','SURNAME','ADDRESS','EMAIL']].apply(rp)