如何删除列中的编码字符?

问题描述 投票:0回答:1

我正在清理一个数据集,有一个名为“城市”的列,其中城市名称具有编码字符。 我的第一次尝试是使用解码的方法,但后来我注意到城市名称是字符串格式的:

编码名称示例:S\xC3\xA3o Paulo

所以我查看了整个数据集并制作了包含所有编码字符的字典。

d = {'\\\\xC3\\\\xA3': 'ã',
     '\\\\xC3\\\\xA1': 'á',
     '\\\\xC3\\\\xAD': 'í',
     '\\\\xC3\\\\xA9': 'é',
     '\\\\xC3\\\\xA2': 'â',
     'D\\xC3\\xBC': 'ü',
     '\\\\xC3\\\\xB3': 'ó',
     '\\\\xC3\\\\xA7': 'ç',
     '\\\\xC3\\\\xBA': 'õ',
     '\\\\xC3\\\\xA5' : 'å'}

for k in d.keys():
    df['city'] = df['city'].str.replace(k, d[k]) 

它有效,但我不确定这种方法是否是解决此问题的更好更快的方法。

python pandas character-encoding decode encode
1个回答
0
投票

使用 Python 的

str.encode()
str.decode()
方法。

df = pd.DataFrame(data)
df['city'] = df['city'].apply(lambda x: bytes(x, "utf-8").decode("unicode_escape").encode("latin1").decode("utf-8"))
© www.soinside.com 2019 - 2024. All rights reserved.