脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - pandas读取中文xlsx文件出现的问题

pandas读取中文xlsx文件出现的问题

2022-12-25 14:52啊!漂泊的鱼 Python

这篇文章主要介绍了pandas读取中文xlsx文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

panda读取中文xlsx文件

1、数据为中文内容,xlsx文件保存。

2、直接读取文件出错(Python报错:pandas.errors.ParserError: Error tokenizing data. C error: Expected 3……),将xlsx文件后缀保存为csv,仍出现格式问题(xlsx不能为多表,左下角可以切换多个窗口的那种),后**将xlsx文件另存为csv**解决此问题。

3、读取csv文件出现编码问题(UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb3 in position 0: invalid start byte),在读取文件时改编码content = pd.read_csv(‘news.csv’,encoding=‘gbk’)

解决pandas读取xlsx时报错

Must explicitly set engine if not passing in buffer or path for io.

今天在用低版本的pandas==0.24.2时,读取xlsx文件报错。

?
1
pd.read_excel(xlsx_file_IO_string)   # xlsx IO流

Must explicitly set engine if not passing in buffer or path for io.

pandas读取中文xlsx文件出现的问题

查看了源代码,如果未指定engine,那么默认使用xlrd来读,而且我本地的xlrd==1.2.0,所以不存在xlrd版本问题。另外又尝试指定了engine=openpyxl,仍然不能解决读取xlsx文件错误的问题。确定是pandas版本过低导致的问题,有条件的可以升级pandas版本,没条件的继续往下看。

使用BytesIO对象,声明流为bytes类型,成功解决问题。

?
1
2
3
4
from pandas.io.common import BytesIO
import pandas as pd
 
pd.read_excel(BytesIO(content)))  # 此处centent为你的xlsx文件内容

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_39965184/article/details/109235376

延伸 · 阅读

精彩推荐