Excel
Polars は Python から Excel ファイルの読み書きができます。 パフォーマンスの観点から、可能であれば Parquet や CSV ファイルなどの他のフォーマットを使うことをお勧めします。
読み込み
Polars には Excel リーダーがネイティブに用意されていません。代わりに、Excel ファイルをPolars が解析できるオブジェクトに変換するための外部ライブラリを使用しています。利用可能なエンジンは以下の通りです:
- xlsx2csv: これが現在のデフォルトです。
- openpyxl: xls2csv と比べて通常は遅いですが、解析が難しいファイルに対してより柔軟な対応ができます。
- pyxlsb: バイナリの Excel ファイル (xlsb) の読み込みに使用します。
- fastexcel: このリーダーは calamine に基づいており、通常最も高速ですが、xls2csv ほどの機能はありません。
fastexcel がデフォルトではありませんが、まずは fastexcel を試してみて、問題がある場合は xlsx2csv や openpyxl を使うことをお勧めします。
これらのエンジンを使うには、対応する Python パッケージをインストールする必要があります。
$ pip install xlsx2csv openpyxl pyxlsb fastexcel
デフォルトの Excel リーダーは xlsx2csv です。
これは Excel ファイルを CSV ファイルに変換し、Polars のネイティブ CSV リーダーでそれを読み込みます。
read_excel
を使って Excel ファイルを読み込みます:
df = pl.read_excel("docs/data/path.xlsx")
sheet_name
引数を使って、読み込むシート名を指定できます。シート名を指定しない場合は、最初のシートが読み込まれます。
df = pl.read_excel("docs/data/path.xlsx", sheet_name="Sales")
書き込み
Excel ファイルに書き込むには、追加の依存関係として xlswriter ライブラリをインストールする必要があります。
$ pip install xlsxwriter
Rust Polars では現在 Excel ファイルへの書き込みは利用できませんが、 このクレート を使って Rust から Excel ファイルに書き込むことは可能です。
DataFrame
を Excel ファイルに書き込むには write_excel
メソッドを使います:
df = pl.DataFrame({"foo": [1, 2, 3], "bar": [None, "bak", "baz"]})
df.write_excel("docs/data/path.xlsx")
ワークシートの名前は worksheet
引数で指定できます。
df = pl.DataFrame({"foo": [1, 2, 3], "bar": [None, "bak", "baz"]})
df.write_excel("docs/data/path.xlsx", worksheet="Sales")
Polars では、複数のシートや書式設定を持つ豊かな Excel ファイルを作成できます。詳細は write_excel
の API ドキュメントをご覧ください。