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

高版本pandas(≥1.2.5)如何读取Shift-JIS(CP932)编码的Excel文件

问题原因
  • pandas ≥1.2.5 版本的read_excel方法已经移除了顶层encoding参数,编码相关配置需要传递给底层解析引擎
  • 你采用rb二进制模式打开文件时,本身就不支持指定encoding参数,该参数仅对文本模式打开的文件生效
  • Shift-JIS(CP932)编码的Excel文件直接按默认配置读取,会出现解析失败或内容乱码问题
正确读取方案

场景1:读取的是.xls格式(Excel 2003及更早版本)文件

使用xlrd作为解析引擎,将编码参数通过engine_kwargs传递给引擎即可,依赖安装命令:pip install xlrd==1.2.0(高版本xlrd不再支持.xls以外的格式)
代码示例:

import pandas as pd

df = pd.read_excel(
    "你的文件路径.xls",
    engine="xlrd",
    engine_kwargs={"encoding": "cp932"}
)

场景2:读取的是.xlsx格式文件

使用openpyxl作为解析引擎,依赖安装命令:pip install openpyxl
默认读取后如果存在内容乱码,可对字符串列手动做编码转义即可,代码示例:

import pandas as pd

# 基础读取
df = pd.read_excel("你的文件路径.xlsx", engine="openpyxl")
# 对乱码的字符串列做转码
df["目标列名"] = df["目标列名"].str.encode("latin1").str.decode("cp932")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:24:03