parser_error UnicodeDecodeError: ‘utf-8‘ codec can‘t decode bytes

从报错信息来看,核心问题是使用pd.read_csv()读取Excel文件(.xlsx)导致的编码错误,具体原因和解决方法如下:

一、错误原因分析

  1. 文件格式与读取方法不匹配

    你的代码用 pd.read_csv() 读取了一个 .xlsx 格式的文件(国际股票价格指数日交易数据表.xlsx),但 read_csv() 是专门用于读取CSV格式 (文本文件)的函数,无法正确解析Excel的二进制格式(.xlsx),导致读取时出现编码混乱(UnicodeDecodeError)。

  2. 编码问题的本质

    即使忽略格式问题,Excel文件的二进制内容被当作文本文件(CSV)读取时,会触发编码解析错误(因为Excel不是纯UTF-8文本),这就是报错中"'utf-8' codec can't decode bytes"的原因。

二、解决方法

1. 使用正确的函数读取Excel文件

读取 .xlsx 格式文件需要用 pd.read_excel() 函数(而非 read_csv()),并确保安装了Excel解析依赖 openpyxl(针对.xlsx格式)。

修正代码

python 复制代码
import pandas as pd

# 读取Excel文件(.xlsx)需用read_excel,而非read_csv
data = pd.read_excel('data/国际股票价格指数日交易数据表.xlsx')
2. 安装必要的依赖库

如果运行时提示 ModuleNotFoundError: No module named 'openpyxl',需先安装解析Excel的库:

bash 复制代码
# 在终端或命令行中执行
pip install openpyxl

三、补充说明

  • pd.read_csv():仅用于读取 .csv 格式的文本文件。
  • pd.read_excel():用于读取 .xlsx.xls 格式的Excel文件,其中 .xlsx 需要 openpyxl 库,.xls 需要 xlrd 库(注意:xlrd 现在仅支持 .xls,不支持 .xlsx)。
  • 检查文件路径:确保 data/国际股票价格指数日交易数据表.xlsx 路径正确,文件确实存在于该位置(相对路径是相对于你的Python脚本所在目录)。

按以上方法修改后,即可正常读取Excel文件。

相关推荐
我送炭你添花3 小时前
Pelco KBD300A 模拟器:03.Pelco-P 协议 8 字节完整拆解 + 与 Pelco-D 一一对应终极对照表
python·测试工具·运维开发
R.lin3 小时前
Java 8日期时间API完全指南
java·开发语言·python
西南胶带の池上桜4 小时前
1.Pytorch模型应用(线性与非线性预测)
人工智能·pytorch·python
丘狸尾4 小时前
gradio uv无法add
开发语言·python
全栈陈序员5 小时前
【Python】基础语法入门(十七)——文件操作与数据持久化:安全读写本地数据
开发语言·人工智能·python·学习
爱笑的眼睛115 小时前
FastAPI 路由系统深度探索:超越基础 CRUD 的高级模式与架构实践
java·人工智能·python·ai
越甲八千6 小时前
uvicorn是啥
python
Dxy12393102166 小时前
Python字符串处理全攻略
开发语言·python
Fiona-Dong6 小时前
Louvain 算法
python·算法
坐吃山猪7 小时前
BrowserUse14-源码-ScreenShot模块-整理
linux·数据库·python