Pandas は、プログラミング言語 Python において、データ解析を支援する機能を提供するライブラリです。特に、数表および時系列データを操作するためのデータ構造と演算を提供します。Pandas は BSD ライセンスのもとで提供されています。Pandas の 開発により、R 言語における DataFrame が扱える「ベクトル処理」の操作性と同等な機能が導入されました。
Pandas で Excel ファイルをデータフレームに読み込むには pandas.read_excel() 関数を使いますが [1]、名前の通り Excel ファイルを読み込むためだけの関数だと思い込んでいました。
自分のメイン PC の OS は Linux (Fedora Linux) ですので、普段使いのスプレッドシートは LibreOffice Calc になります。この Calc は Excel ファイルの読み書きができるので、Windows 上で作成した Excel ファイルを Linux 上で読み書きするのには不自由しません。一方、Excel ファイルで Windows とのやりとりを考慮しなくとも良い場合には、Calc デフォルトの ODS 形式(OpenDocument Spreadsheet, 拡張子 .ods)で保存しています。)
この ODS 形式のファイルを Pandas で読み込む方法を調べたところ、Excel の時と同じ pandas.read_excel() 関数にたどり着きました。Pandas で Excel ファイルを扱うために openpyxl と xlrd という Excel ファイルを読み書きするパッケージをあらかじめインストールしておく必要があるのと同じように、ODS 形式のファイルを読み込むときには、あらかじめ odfpy [2] というパッケージをインストールしておけば良いことが判りました。
「判りました」と書いたのは、pandas.read_excel() 関数のマニュアル [3] のパラメータ engine の説明に、
If path_or_buffer is an OpenDocument format (.odf, .ods, .odt), then odf will be used.とあったので、早速 pip install odf で odf パッケージをインストールしたのですが、pandas.read_excel() 関数ではエラーが出て ODF ファイルを読み込めなかったからです。
上記マニュアルページの odf の文字列部分にリンクが張ってあったのでクリックしたところ PyPi の odfpy のページが開きました。ここでインストールするパッケージを間違えたことに気づいたので、odf をアンインストールして、odfpy をインストール。そして ODF 形式のファイルを読み込めることを確認出来ました。
ちょっとハマってしまった間違いだったので備忘録にしました。
参考サイト
- pandasでExcelファイル(xlsx, xls)の読み込み(read_excel) | note.nkmk.me
- odfpy · PyPI
- pandas.read_excel — pandas documentation

にほんブログ村
#オープンソース

0 件のコメント:
コメントを投稿