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

Python如何处理pandas读取csv出现�等特殊字符乱码问题

解决pandas读取cp1252编码csv特殊字符乱码及关联匹配失败问题

问题本质

两个文件虽然实际编码都是cp1252,但读取时pandas采用了不一致的解码规则:其中一个文件用默认utf-8解码,遇到cp1252编码的特殊字符无法解析,就生成了�替换符;另一个文件解码规则适配了cp1252,正确解析出了É字符,因此相同原始ID在两个DataFrame中实际值不同,关联时无法匹配。

解决方案

  • 读取两个csv文件时都显式指定encoding参数为cp1252,保证解码规则完全统一:
import pandas as pd
# 读取两个文件时都加encoding参数
df1 = pd.read_csv("第一个文件路径.csv", encoding="cp1252")
df2 = pd.read_csv("第二个文件路径.csv", encoding="cp1252")
  • 如果文件中存在少量不符合cp1252编码的异常字符,可添加encoding_errors参数统一处理异常,避免读取失败:
    用encoding_errors="replace"会把所有无法解析的字符统一替换为�,避免因个别异常字符导致整个读取流程中断;用encoding_errors="strict"会在遇到异常字符时直接抛出错误,适合需要准确定位异常数据行的场景。
  • 读取完成后可先校验ID列的一致性:取两个DataFrame中疑似乱码的ID样本,执行df["ID列名"].iloc[样本行号].encode("utf-8")打印字节码,确认相同原始ID的字节码完全一致后再执行内连接操作。

注意事项

Excel打开csv时会自动适配当前系统的默认编码,其显示的字符内容和文件实际存储的字节可能存在偏差,不要以Excel的显示结果作为判断文件编码的唯一依据。

内容的提问来源于stack exchange,提问作者Kshitish Sood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:27:01