多列的多个子字符串替换

时间:2018-08-23 08:33:17

标签: python python-3.x pandas replace

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

replacements={"ı": "i", "İ": "i", "Ç": "c", "ç" : "c", "ü" : "u", "Ì": "u", "ö" : "o", "Ö" : "o", "ş": "s",
          "Å?" : "s", "ÅŽ" : "s", "ÄŸ" : "g", "Ä?" : "g", "ÄŽ" : "g"}

可以看出,有多个替换要应用,因此使用replace()不会成为一种花哨的编码。一个字符串中可能有多个特殊字符子字符串,因此应针对每个字符串执行所有这些子字符串。 此外,我需要将它们应用于数据框的几列;

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

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

1 个答案:

答案 0 :(得分:0)

替换可以是一件事情,只需对其进行迭代(虽然并不那么花哨)

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)