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个回答

1

1
我有同样的问题。实际上,问题在于即使使用pip安装了包/库,这些包也没有与IDE集成。因此,需要将库特别添加到IDE中。

1
我曾经遇到同样的问题,但以上答案都没有解决。如果您进入设置(CTRL + ALT + s)并搜索项目解释器,您将看到所有已安装的软件包。点击右上角的+按钮并搜索xlrd,然后点击左下方的安装包按钮即可安装。

在此之前,我已经从我的python.exe文件位置执行了“pip install xlrd”命令,因此您可能也需要这样做。(您可以通过在Windows搜索栏中搜索它并右键单击 ->打开文件位置,然后在文件资源管理器地址栏中键入cmd来查找文件位置)


0

我在使用jupyter notebook中的xlrd时遇到了类似的问题。我注意到您正在使用虚拟环境,这也是我的问题的关键所在。我已经在我的虚拟环境中安装了xlrd,但我没有在笔记本电脑中为该虚拟环境正确安装内核。

为了使它工作,我创建了我的虚拟环境并激活了它。

然后... pip install ipykernel

然后... ipython kernel install --user --name=myproject

最后,在启动jupyter notebooks时,当您创建一个新的notebook时,请选择您创建的名称(在此示例中为'myproject')

希望这可以帮助您。


0

另一种可能性是,机器上安装了旧版本的xlrd,并且它不在“..:\Python27\Scripts..”文件夹中。

换句话说,机器上有两个不同版本的xlrd。

enter image description here

当你检查下面的版本时,它会读取不在"..:\Python27\Scripts.."文件夹中的版本,无论你用pip更新了多少次。

print xlrd.__version__

删除整个多余的子文件夹,它就能正常工作。(除了xlrd之外,我还遇到了另一个库也是这样)


0
请确保您的Python或Python3能够看到xlrd的安装。我遇到了这样的情况,即Python3.5和Python3.7安装在两个不同的位置。虽然xlrd是与Python3.5一起安装的,但我使用的是python3(来自python3.7目录)运行我的脚本,并得到了上面报告的相同错误。当我使用正确的Python(即Python3.5目录)运行我的脚本时,我能够毫无问题地读取Excel电子表格。

0

您需要安装 "xlrd" 库

对于 Linux(Ubuntu 和衍生版本):

通过 pip 安装: python -m pip install --user xlrd

通过 Linux 包管理器系统范围内安装: *sudo apt-get install python-xlrd

Windows:

通过 pip 安装: *pip install xlrd

下载文件: https://pypi.org/project/xlrd/


0

在我尝试了所有方法都无效之后,最终只有先卸载再从头重新安装才解决了问题:

pip uninstall xlrd
pip install xlrd

0
首先,您需要安装xlrd和pandas软件包。然后尝试以下代码。
import xlrd
import pandas as pd

xl = pd.ExcelFile("fileName.xlsx")
print(xl.parse(xl.sheet_names[0]))

0
如@WojciechJakubas所提到的,安装openpyxl而不是xlrd,我使用了openpyxl并且它起作用了。

pip install openpyxl

import openpyxl
path = "path to file.xlxs"
wb_obj = openpyxl.load_workbook(path)
sheet_obj = wb_obj.active
length_col = sheet_obj.max_row
print("Length of rows : ", length_col)

我希望它能在2023年帮助很多人。


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