1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pandasで「ImportError: Install xlrd >= 0.9.0 for Excel support」エラー。 openpyxlを使うように変更して解決

Posted at

『Python実践データ100本ノック』のサンプルで、エクセルファイルを読み込むコードを試していたら、以下エラー発生。

ImportError: Install xlrd >= 0.9.0 for Excel support

解決方法

openpyxlをインストール

pip install openpyxl

pandasのread_excel()のパラメータにengineを指定

# 修正前
# kokyaku_data = pd.read_excel("kokyaku_daicho.xlsx")

# 修正後
kokyaku_data = pd.read_excel("kokyaku_daicho.xlsx", engine="openpyxl")

Pandasのデフォルトのengineがxlrdだけど、最近xlsxファイル非対応になってしまったため、engineをopenpyxlに切り替えてあげることでエラー回避できました。

xlrdのほうもそのうち修正されるだろうけど、それまでは上記で対処するのがよいみたいです。

試したこと

参考までに、エラー発生後試したことメモしておきます。

色々やったけど、多分上記対応のみでいけるはず・・・

こちらの記事を参考に、xlrdをインポートしてみる。

pip install xlrd

しかし今度はインストールしたxlrdはxlsxファイルをサポートしてないとのエラーが発生。

XLRDError: Excel xlsx file; not supported

こちらの記事で、Pandas1.2.0で解消したことを知る。

参考:Pandasの1.2.0関連の記事

そこで一度Pandasをアンインストールし、1.2.0をインストール。2021/1/6時点では、バージョン指定しない場合1.1.3になるようだったので、バージョン指定してインストール。

pip install pandas==1.2.0

ちなみに、condaでインストールしようとすると失敗した。
また、numpyが1.19.5に自動更新された。

すると今度は下記エラー

ValueError: Your version of xlrd is 2.0.1. In xlrd >= 2.0, only the xls format is supported. Install openpyxl instead.

どういうこと?と調べてみたところ、

  • openpyxlをインストール
  • pandasのread_excel()のパラメータにengineを指定

とすればよいとのこと。

pd.read_excel("sample.xlsx", engine="openpyxl")

参考:https://teratail.com/questions/310586

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?