【トラブル】Pandas で Excel を扱った際のトラブル

■ はじめに

 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