■ はじめに
Pandas を扱う機会があって、Excel を扱った際に エラーが連チャンで発生したので、メモっておく。
目次
【1】エラー「Missing optional dependency 'xlrd'」が表示 【2】エラー「Excel xlsx file; not supported」が表示
【1】エラー「Missing optional dependency 'xlrd'」が表示
以下の「現象が発生したコード」を実行したところ、 エラー「ImportError: Missing optional dependency 'xlrd'」が発生した
現象が発生したコード
import pandas as pd # ★ここで例外 data_frame = pd.read_excel('hello.xlsx', sheet_name='Sheet1')
エラー内容
ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
原因
* モジュール「xlrd」がv1.0.0 以上がインストールされていないため
対応案
* pip install xlrd などでモジュールをインストールする
【2】エラー「Excel xlsx file; not supported」が表示
上記の【1】を対応した後に再度実行したら 別のエラー「Excel xlsx file; not supported」が発生した。
エラー内容
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supported
発生した開発環境
* Python : v3.6 * Pandas : v1.1.3
原因
https://oku.edu.mie-u.ac.jp/~okumura/python/201212.html
に原因が記載されていた。感謝。。。以下、抜粋。 ~~~~~ xlrd の Changes に書かれているように,xlrd 2.0.0 (11 December 2020) で "Remove support for anything other than .xls files." ということで xlsx サポートがなくなった。 ~~~~~
https://xlrd.readthedocs.io/en/latest/changes.html
対応案1:Pandas v1.2.0以降に更新する
Pandas v1.2.0 であれば、 この問題は、Pandas 側で対応してくれている様なので Pandasを更新する。 ただ、Python3.7以降でないと、Upgradeできないみたい。 conda install -c anaconda pandas==1.2.0 ~~~~~~~~~ UnsatisfiableError: The following specifications were found to be incompatible with the existing python installation in your environment: Specifications: - pandas==1.2.0 -> python[version='>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0'] Your python: python=3.6 ~~~~~~~~~
対応案2:「engine='openpyxl'」を指定する
# openpyxl がインストールされていない場合は pip install などで対応する import pandas as pd data_frame = pd.read_excel( 'hello.xlsx', sheet_name='Sheet1', engine='openpyxl') # ★追加 print(data_frame)
関連記事
Pandas ~入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/22/014957
Pandas ~ 基本編 / Excel編 ~
https://dk521123.hatenablog.com/entry/2020/11/18/000000
Pandas の環境設定でのトラブル
https://dk521123.hatenablog.com/entry/2021/03/19/000000