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文件報錯。
pd.read_excel(xlsx_file_IO_string) # xlsx IO流
Must explicitly set engine if not passing in buffer or path for io.
查看了源代碼,如果未指定engine,那么默認使用xlrd來讀,而且我本地的xlrd==1.2.0,所以不存在xlrd版本問題。另外又嘗試指定了engine=openpyxl,仍然不能解決讀取xlsx文件錯誤的問題。確定是pandas版本過低導致的問題,有條件的可以升級pandas版本,沒條件的繼續(xù)往下看。
使用BytesIO對象,聲明流為bytes類型,成功解決問題。
from pandas.io.common import BytesIO import pandas as pd pd.read_excel(BytesIO(content))) # 此處centent為你的xlsx文件內容
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Win10環(huán)境中如何實現python2和python3并存
這篇文章主要介紹了Win10環(huán)境中如何實現python2和python3并存,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07Python利用redis-py實現集合與有序集合的常用指令操作
這篇文章我們將來學習?redis-py?這個模塊針對?“集合”?與?"有序集合"的一些常用指令操作,文中的示例代碼講解詳細,需要的可以參考一下2022-09-09Python Collections強大的數據結構工具使用實例探索
這篇文章主要介紹了Python Collections強大的數據結構工具的使用實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01