【问题标题】:Reading Excel file to Python fails due to number formatted as text由于数字格式为文本,将 Excel 文件读取到 Python 失败
【发布时间】:2018-06-17 19:44:34
【问题描述】:

我有大量的 Excel 文件,每个文件都有一列,其中数字被格式化为文本。 Excel 给出错误“此单元格中的数字被格式化为文本或前面带有撇号” - 请参阅第三列,其中单元格有一个绿色三角形。

我的目标是在 Pandas 中打开所有这些文件而无需手动打开每个文件并将列转换为数字。但是,pd.read_excel() 失败并出现以下xlrd 错误:

XLRDError: ZIP file contents not a known type of workbook

不出所料,当我直接使用 xlrd 时:wb = xlrd.open_workbook(filename) 我得到了同样的错误。

我也试过 openpyxl:wb = openpyxl.load_workbook(filename),它给了我这个:

KeyError: "There is no item named 'xl/_rels/workbook.xml.rels' in the archive"

如果我在 excel 中手动将列转换为数字并重新保存工作簿,我确认该文件可由 pandas (xlrd) 和 openpyxl 打开。

有人有什么想法吗?

【问题讨论】:

标签: excel pandas openpyxl xlrd vba


【解决方案1】:

在阅读 excel 时使用“转换器”。
Docs

例如:

df = pd.read_excel('yourfile.xlsx',sheetname='sheetname',header=0,converters={ "% Chg" : str })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多