类似的问题肯定已经在这里讨论过很多次了,但似乎都没有完全解决,所以我想更新一下讨论。
我最近开始使用 Python,并尝试使用
在 Jupyterlab (2.2.9) 中读取 Excel 文件import pandas as pd
sample_file = pd.read_excel("sample.xlsx")
sample_file.head()
然后我收到如下错误。
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-8-cfbece5b87d5> in <module>
----> 1 sample_data = pd.read_excel("sample_data.xlsx")
2 sample_data.head()
~/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pandas/io/excel/_base.py in read_excel(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, **kwds)
302
303 if not isinstance(io, ExcelFile):
--> 304 io = ExcelFile(io, engine=engine)
305 elif engine and engine != io.engine:
306 raise ValueError(
~/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pandas/io/excel/_base.py in __init__(self, io, engine)
822 self._io = stringify_path(io)
823
--> 824 self._reader = self._engines[engine](self._io)
825
826 def __fspath__(self):
~/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pandas/io/excel/_xlrd.py in __init__(self, filepath_or_buffer)
18 """
19 err_msg = "Install xlrd >= 1.0.0 for Excel support"
---> 20 import_optional_dependency("xlrd", extra=err_msg)
21 super().__init__(filepath_or_buffer)
22
~/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pandas/compat/_optional.py in import_optional_dependency(name, extra, raise_on_missing, on_version)
90 except ImportError:
91 if raise_on_missing:
---> 92 raise ImportError(msg) from None
93 else:
94 return None
ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
我使用Anaconda,xlrd的版本已经是1.2.0。以防万一我已经这么做了
conda install xlrd
正如这里很多人的建议(我也尝试用 pip 替换 conda)。然而,同样的错误仍然发生。我完全迷失了。
恐怕 pandas 的建议有点过时了。你需要:
conda install openpyxl
pd.read_excel("sample.xlsx", engine='openpyxl')
您正在尝试读取 xlsx 格式的 Excel 文件。 openpyxl 是您的首选模块,而不是 xlrd,原因如下,直接来自 xlrd github 页面:
import pandas as pd
sample_file = pd.read_excel("sample.xlsx")
sample_file.head()
试试这个