从 .xls 文件读取数据时出现 Python 错误
Posted
技术标签:
【中文标题】从 .xls 文件读取数据时出现 Python 错误【英文标题】:Python Error when reading data from .xls file 【发布时间】:2015-05-29 23:54:37 【问题描述】:我需要将一些xls文件读入Python。示例数据文件可以通过Link:data.file找到。我试过了:
import pandas as pd
pd.read_excel('data.xls',sheet=1)
但它给出了一个错误信息:
错误 *** 代码页 21010 -> 编码 'unknown_codepage_21010' -> LookupError: unknown encoding: unknown_codepage_21010 Traceback (最 最近通话最后一次):
文件“”,第 1 行,在 pd.read_excel('data.xls',sheet=1)
文件“C:\Anaconda3\lib\site-packages\pandas\io\excel.py”,第 113 行, 在 read_excel return ExcelFile(io, engine=engine).parse(sheetname=sheetname, **kwds)
文件“C:\Anaconda3\lib\site-packages\pandas\io\excel.py”,第 150 行, 在 初始化 self.book = xlrd.open_workbook(io)
文件“C:\Anaconda3\lib\site-packages\xlrd__init__.py”,第 435 行,在 open_workbook ragged_rows=ragged_rows,
文件“C:\Anaconda3\lib\site-packages\xlrd\book.py”,第 116 行,在 open_workbook_xls bk.parse_globals()
文件“C:\Anaconda3\lib\site-packages\xlrd\book.py”,第 1170 行,在 parse_globals self.handle_codepage(数据)
文件“C:\Anaconda3\lib\site-packages\xlrd\book.py”,第 794 行,在 句柄代码页 self.derive_encoding()
文件“C:\Anaconda3\lib\site-packages\xlrd\book.py”,第 775 行,在 派生编码 _unused = unicode(b'trial', self.encoding)
文件“C:\Anaconda3\lib\site-packages\xlrd\timemachine.py”,第 30 行, 在 unicode = lambda b, enc: b.decode(enc)
LookupError:未知编码:unknown_codepage_21010
有人可以帮忙解决这个问题吗?
PS:我知道如果我在windows excel中打开文件并重新保存,代码可以工作,但我正在寻找无需手动调整的解决方案。
【问题讨论】:
这不仅仅是 pandasc 的问题。其他人有相同的problem 【参考方案1】:使用 ExcelFile 类,我成功地将文件读入 python。 让我知道这是否有帮助!
import xlrd
import pandas as pd
xls = pd.ExcelFile(’C:\data.xls’)
xls.parse(’Index Constituents Data’, index_col=None, na_values=[’NA’])
【讨论】:
看起来您在此处的代码中没有使用 xlrd,但是您导入了它。【参考方案2】:以下内容对我有用。
import xlrd
my_xls = xlrd.open_workbook('//myshareddrive/something/test.xls',encoding_override="gb2312")
【讨论】:
你知道如何将my_xls转换成DataFrame吗?以上是关于从 .xls 文件读取数据时出现 Python 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas Python (pandas.io.parsers.TextFileReader) 从文件中读取数据时出现问题
在 Python 中读取 Twitter json 文件时出现 KeyErrors
为啥打开 .xlsm 而不是 .xls 时出现 python xlrd 错误
在 Python Pandas 中使用 read_parquet 从 AWS S3 读取镶木地板文件时出现分段错误