Python: Pandas pd.read_excel 出现 ImportError: 安装 xlrd >= 0.9.0 以支持 Excel。

145

我想用pandas读取一个 .xlsx 文件,但是出现了以下错误:

data = pd.read_excel(low_memory=False, io="DataAnalysis1/temp1.xlsx").fillna(value=0) 

Traceback (most recent call last):
  File "/Users/Vineeth/PycharmProjects/DataAnalysis1/try1.py", line 9, in <module>
    data = pd.read_excel(low_memory=False, io="DataAnalysis1/temp1.xlsx").fillna(value=0)
  File "/Users/Vineeth/venv/lib/python2.7/site-packages/pandas/util/_decorators.py", line 118, in wrapper
    return func(*args, **kwargs)
  File "/Users/Vineeth/venv/lib/python2.7/site-packages/pandas/io/excel.py", line 230, in read_excel
    io = ExcelFile(io, engine=engine)
  File "/Users/Vineeth/venv/lib/python2.7/site-packages/pandas/io/excel.py", line 263, in __init__
    raise ImportError(err_msg)
ImportError: Install xlrd >= 0.9.0 for Excel support

我也试过

data = pd.read_excel("DataAnalysis1/temp1.xlsx", low_memory=False).fillna(value=0)

我仍然收到相同的错误。

背景:我正在尝试将具有多个工作表的Excel文件提取为数据框的字典。我安装了xlrd版本0.9.0和最新版本(1.1.0),但我仍然收到相同的错误。谢谢!


4
你尝试听取错误信息并安装 xlrd 包了吗? - cs95
1
是的,我安装了xlrd包。编辑:我尝试导入该包,但Python给出了一个import xlrd ImportError: No module named xlrd错误。 - Vineeth Sai
1
我猜您安装的是不同版本的Python。 - cs95
1
@cs95,刚刚收到了相同的错误信息,问题在于我只是在使用该库的函数,为什么没有 pandas 自己安装所有依赖库呢 :( - Achintya Ranjan Chaudhary
21个回答

157

正如 @COLDSPEED 所巧妙地指出的,错误明确告诉你需要安装 xlrd。

pip install xlrd

然后你就可以开始了。


7
我曾经遇到过同样的问题,不得不强制重新安装xlrd。 运行命令:pip install --upgrade --force-reinstall xlrd - Tamas Szuromi
8
很不幸,我尝试了你提供的两个命令后还是收到了同样的错误信息:“安装 xlrd >= 0.9.0 以支持 Excel”。:/ - Revolucion for Monica
同样的问题(在v1.1.0版本上)...我也无法像这里所建议的那样导入它,https://dev59.com/qqzla4cB1Zd3GeqPBLn_#51286813。 - jjrr
4
以下是Tech-prism的回答,更加现代化。 - Parm
1
如果您看到此消息:您的xlrd版本为2.0.1。在xlrd >= 2.0中,仅支持xls格式。请安装openpyxl。 请查看@tech-prism的消息并执行 pip install openpyxl - Wojciech Jakubas

119

自2020年12月起,正如官方changelog所解释的那样,xlrd不再支持xlsx文件。您可以改用openpyxl

pip install openpyxl

在你的Python文件中:

import pandas as pd
pd.read_excel('path/to/file.xlsx', engine='openpyxl')

4
那是唯一对我有用的答案!谢谢!希望他们接受你的回答。 - Charles Santana
1
这正是我所需要的。我的程序在Python 3.9上运行良好,使用更新版本的pandas(1.2.3),但尝试使其与Python 3.6兼容时,我只能将pandas升级到1.1.5,这仍然必须使用XLRD作为默认引擎。非常感谢您的答案! - Drew Mares
对我来说,在终端中运行 pip install openpyxl 命令解决了这个问题。在 read_excel 方法中不需要设置 engine='openpyxl'。但是如果设置了也可以正常工作。只需确保它已安装在您的路径上即可。 - tonycor nikolauos

38

使用以下任意一种方式:

pip install xlrd

如果你正在使用conda,请使用

conda install -c anaconda xlrd

就这样,祝你好运。


1
我已经安装了xlrd并且在运行pip freeze时显示出来,但仍然出现相同的错误信息... - haneulkim

9

如果您使用的是Ubuntu,以下方法适用于我:

python3 -m pip install openpyxl
python3 -m pip install xlrd

7
在使用cProfile运行脚本时出现了这个问题,例如:python3 -m cProfile script.py,即使xlrd已经安装并且之前从未抛出过此错误,在使用python3 script.py时仍然存在该问题。(尽管我同意这不是OP遇到的问题,因为明显是导入错误)但是,对于像我这样的情况,以下方法可以解决该问题,尽管在每种情况下都会收到“要求已满足”的提示。
pip install --upgrade pandas
pip install --upgrade xlrd

这些内容相当令人困惑,不确定是cProfile引起的还是巧合。

如果您的pip install操作在python2上运行,则以下内容应该可行。

python3 -m pip install xlrd

6

我在Pycharm中运行以下代码时,遇到了以下错误:

"ImportError: 安装xlrd >= 1.0.0以支持Excel"

import pandas as pd
df2 = pd.read_excel("data.xlsx")
print(df2.head(3))
print(df2.tail(3))

解决方案:pip install xlrd 使用该命令后,可以解决问题。 此外,无需使用 "import xlrd"。

3

以下方法适用于我:

对于Python 3

使用命令: pip3 install xlrd --user

对于Python2

使用命令: pip install xlrd --user


2
我不知道这是否对某些人有用,但我遇到了同样的问题。 我在特定环境下的anaconda提示符中写入pip install xlrd,它显示已安装,但当我查看已安装的软件包时,它并不存在。 解决问题的方法是“移动”(我不知道这个术语),进入特定环境的Scripts文件夹,然后在那里运行pip install xlrd。 希望这对某些人有用:D

2

我在使用Jupyter时遇到了错误。

ModuleNotFoundError: No module named 'xlrd'
...
ImportError: Install xlrd >= 0.9.0 for Excel support

我使用之后,问题得到了解决。

!pip install xlrd

1

我遇到了同样的问题,花了2个小时才解决。

  1. pip install xlrd (最新版本)
  2. pip install pandas (最新版本)
  3. 前往C:\Python27\Lib\site-packages并检查xlrd文件夹(如果有两个),删除旧版本
  4. 打开一个新终端并使用pandas读取Excel。应该可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接