pandasでexcelを開くときは「xlrd」より「openpyxl」の方が安定してるかもしれない話
はじめに
pandasを初めて使って早2年強。この度業務で初めてexcelファイルを取り扱う必要が出てきました。
テキストファイル安定のこのご時世、エクセルみたいなバイナリーファイルという時点で不安はあったのですが、案の定読み込みの時点で少し面倒だったので一応解決法などをメモしておきます。
尚、pandasのバージョンは1.2.1
です。
解決法
まず普通にread_excel
で読み込もうとすると以下のエラーが
importerror: missing optional dependency 'xlrd'. install xlrd >= 1.0.0 for excel support use pip or conda to install xlrd.
なんでもxlrd
というライブラリが別途必要とのこと。そこで現時点で最新だったバージョン2.0.1
をインストールして再度試してみることに
your version of xlrd is 2.0.1. in xlrd >= 2.0, only the xls format is supported. install openpyxl instead.
またまたエラーです。どうやら2.0以上のxlrdだとエクセルの拡張子がxls
のものしか読み込めず、比較的新しいxlsx
のものに関してはエラーが発生してしまうようです。時代に逆行してますね。
xlrdのバージョンを1.2.0
に下げてみました。
attributeerror: 'elementtree' object has no attribute 'getiterator'
は??
本日3度目のエラー。エクセルファイル恐るべしです。
どうやら調べてみると結局xlrdよりもopenpyxl
の方がよさげ、バージョン3.0.6
をインストールし下記のようにreac_excel
の引数に以下を加えたところ、ようやくファイル読み込みができました。
df = pd.read_excel('data.xlsx', engine='openpyxl')