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