pandas讀取中文xlsx文件出現(xiàn)的問題
panda讀取中文xlsx文件
1、數(shù)據(jù)為中文內(nèi)容,xlsx文件保存。
2、直接讀取文件出錯(cuò)(Python報(bào)錯(cuò):pandas.errors.ParserError: Error tokenizing data. C error: Expected 3……),將xlsx文件后綴保存為csv,仍出現(xiàn)格式問題(xlsx不能為多表,左下角可以切換多個(gè)窗口的那種),后**將xlsx文件另存為csv**解決此問題。
3、讀取csv文件出現(xiàn)編碼問題(UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb3 in position 0: invalid start byte),在讀取文件時(shí)改編碼content = pd.read_csv(‘news.csv’,encoding=‘gbk’)
解決pandas讀取xlsx時(shí)報(bào)錯(cuò)
Must explicitly set engine if not passing in buffer or path for io.
今天在用低版本的pandas==0.24.2時(shí),讀取xlsx文件報(bào)錯(cuò)。
pd.read_excel(xlsx_file_IO_string) # xlsx IO流
Must explicitly set engine if not passing in buffer or path for io.
查看了源代碼,如果未指定engine,那么默認(rèn)使用xlrd來讀,而且我本地的xlrd==1.2.0,所以不存在xlrd版本問題。另外又嘗試指定了engine=openpyxl,仍然不能解決讀取xlsx文件錯(cuò)誤的問題。確定是pandas版本過低導(dǎo)致的問題,有條件的可以升級(jí)pandas版本,沒條件的繼續(xù)往下看。
使用BytesIO對(duì)象,聲明流為bytes類型,成功解決問題。
from pandas.io.common import BytesIO import pandas as pd pd.read_excel(BytesIO(content))) # 此處centent為你的xlsx文件內(nèi)容
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Win10環(huán)境中如何實(shí)現(xiàn)python2和python3并存
這篇文章主要介紹了Win10環(huán)境中如何實(shí)現(xiàn)python2和python3并存,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python PaddleSpeech實(shí)現(xiàn)嬰兒啼哭識(shí)別
這篇文章主要為大家介紹了python PaddleSpeech實(shí)現(xiàn)嬰兒啼哭識(shí)別操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Python利用redis-py實(shí)現(xiàn)集合與有序集合的常用指令操作
這篇文章我們將來學(xué)習(xí)?redis-py?這個(gè)模塊針對(duì)?“集合”?與?"有序集合"的一些常用指令操作,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-09-09為什么說Python可以實(shí)現(xiàn)所有的算法
在本篇文章里小編給各位整理的是關(guān)于一個(gè)Python就可以實(shí)現(xiàn)所有的算法的相關(guān)文章,需要的朋友們參考下。2019-10-10Python Collections強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)工具使用實(shí)例探索
這篇文章主要介紹了Python Collections強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)工具的使用實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01