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文件。

相关推荐
2401_833033622 分钟前
如何用 CSS 变量配合 JS setProperty 实现动态换肤功能
jvm·数据库·python
2401_898717664 分钟前
CSS实现自定义滚动条的定位悬浮_利用fixed定位与伪类
jvm·数据库·python
才兄说5 分钟前
机器人二次开发机器狗巡检?自动返充避障
python
m0_7485548111 分钟前
如何在 Discord.py 中限制按钮仅由特定角色用户点击
jvm·数据库·python
尘埃落定wf12 分钟前
Python 数据库迁移:Alembic 太重?自己动手搭一套轻量版
数据库·python·mysql
Jetev12 分钟前
Golang怎么用embed嵌入配置文件_Golang如何将默认配置文件打包进二进制程序【技巧】
jvm·数据库·python
2301_7873124313 分钟前
golang如何实现Apple Pay集成_golang Apple Pay集成实现教程
jvm·数据库·python
m0_7403524215 分钟前
HTML怎么创建API调用历史记录_HTML最近请求参数快照【详解】
jvm·数据库·python
2303_8212873816 分钟前
mysql在事务中执行DDL的后果_MySQL 8.0之前的限制
jvm·数据库·python
2301_7693406718 分钟前
Golang怎么用gRPC Gateway_Golang gRPC Gateway教程【经典】
jvm·数据库·python