You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除数据集中city列的编码字符?

处理数据集中含转义UTF-8编码的城市名称优化方案

你当前手动维护替换字典的方法虽然能解决问题,但存在两个明显不足:一是需要逐个枚举所有出现的转义字符,容易遗漏;二是多次调用str.replace会反复遍历整个列,数据量大时效率偏低。

更高效且通用的解决方案是利用Python的编码解码机制直接修复这类转义问题——你的字符串本质是UTF-8字节被错误地以拉丁-1(Latin-1)编码解析成了字符串,反过来操作就能还原正确字符:

优化代码示例

import pandas as pd

# 对city列进行批量修复
df['city'] = df['city'].apply(lambda x: x.encode('latin-1').decode('utf-8'))

原理说明

以你的样本字符串S\\xC3\\xA3o Paulo为例:

  1. 字符串实际存储为S\xC3\xA3o Paulo,包含两个转义字符\xC3和\xA3;
  2. encode('latin-1')将每个字符转换成对应字节(拉丁-1是单字节编码,每个字符对应一个字节),得到UTF-8格式的字节序列b'S\xc3\xa3o Paulo';
  3. decode('utf-8')将字节序列解码为正确的Unicode字符串São Paulo。

对比优势

  • 通用性强:无需手动维护替换字典,能自动处理所有UTF-8编码的特殊字符(包括你字典里的ã、á、ü等,以及未提前遇到的字符);
  • 效率更高:仅需遍历列一次,远快于多次调用str.replace的方式;
  • 无副作用:对原本正常的字符串(不含转义的城市名),该操作完全无损,不会改变原有内容。

内容的提问来源于stack exchange,提问作者Nathalia Bedor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:52:10