从 .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 读取镶木地板文件时出现分段错误

从python中的xls或xlsx文件读取后将数据转换为字符串

从文件/rdd 读取数据时出现 Unicode 错误