PandasのデータフレームをExcelファイルとして出力することで、他のツールやチームとのデータ連携が容易になります。
この記事では、DataFrame.to_excel()の基本的な使い方から、よく使う引数の詳細まで解説します。
Pandasバージョン
本記事は、Pandas 2.2.3の情報を基に執筆しています。
import pandas as pd
print(pd.__version__)
>>
2.2.3DataFrame.to_excel()
Excelファイルへの出力にはto_excel()を使用します。必須の引数として、出力ファイルのパスを拡張子付きで指定します。相対パス・絶対パスのいずれも使用できます。
DataFrame.to_excel(excel_writer, *, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, inf_rep='inf', freeze_panes=None, storage_options=None, engine_kwargs=None)基本的な使い方は以下の通りです。
df.to_excel("output/output.xlsx")引数一覧
| 引数 | 必須 | 説明 |
|---|---|---|
| excel_writer | ○ | 出力ファイルのパスまたはExcelWriterオブジェクト |
| sheet_name | 出力するシート名。デフォルトは'Sheet1' | |
| na_rep | 欠損値の表現。デフォルトは'' | |
| float_format | float型の出力フォーマット | |
| columns | 出力カラムをリストで指定 | |
| header | ヘッダーの出力有無。リスト指定で列名の変更も可能 | |
| index | インデックスの出力有無。デフォルトはTrue | |
| index_label | インデックス列の列名を指定 | |
| startrow | 出力開始行を整数で指定 | |
| startcol | 出力開始列を整数で指定 | |
| engine | 'openpyxl'または'xlsxwriter'を指定 | |
| merge_cells | マルチインデックスをセル結合して出力するか | |
| inf_rep | 無限大の文字列表現。デフォルトは'inf' | |
| freeze_panes | ウィンドウ枠を固定するセルを(行, 列)のタプルで指定 | |
| storage_options | リモートファイルアクセス情報を指定 |
以降では、よく使う引数を具体例とともに解説します。
sheet_name
出力するシートの名前を指定します。デフォルトは'Sheet1'です。
df.to_excel("output/output.xlsx", sheet_name="test")float_format
浮動小数点数の出力フォーマットを指定します。"%.2f"とした場合、小数第2位まで出力されます。
df.to_excel("output/output.xlsx", float_format="%.2f")
columns
出力対象のカラムをリスト形式で指定します。
df.to_excel("output/output.xlsx", columns=["Date", "Open"])![df.to_excel("output/output.xlsx", columns=["Date", "Open"])](https://nao-util-blog.com/wp-content/themes/the-thor/img/dummy.gif)
header
ヘッダーの出力有無を指定します。Falseを指定するとヘッダーが出力されません。デフォルトはTrueです。
df.to_excel("output/output.xlsx", header=False)
リスト形式で指定すると、指定した列名をヘッダーとして出力できます。
df.to_excel("output/output.xlsx", header=["a", "b", "c", "d", "e", "f", "g"])![df.to_excel("output/output.xlsx", header=["a", "b", "c", "d", "e", "f", "g"])](https://nao-util-blog.com/wp-content/themes/the-thor/img/dummy.gif)
index
インデックス列の出力有無を指定します。Falseを指定するとインデックスが出力されません。デフォルトはTrueです。
df.to_excel("output/output.xlsx", index=False)![df.to_excel("output/output.xlsx", header=["a", "b", "c", "d", "e", "f", "g"])](https://nao-util-blog.com/wp-content/themes/the-thor/img/dummy.gif)
startrow
Excel上での出力開始位置(行)を整数で指定します。データフレームのデータは全件出力されます。
df.to_excel("output/output.xlsx", startrow=5)
startcol
Excel上での出力開始位置(列)を整数で指定します。データフレームのデータは全件出力されます。
df.to_excel("output/output.xlsx", startcol=3)
活用例:
startrowとstartcolを組み合わせることで、既存のExcelテンプレートの特定の位置にデータを出力するといった使い方が可能です。
まとめ
今回は、DataFrame.to_excel()を使ったExcelファイルへの出力方法を紹介しました。
- 基本的な出力:
df.to_excel("ファイルパス")で簡単にExcel出力できる - シート名指定:
sheet_nameで出力シートの名前をカスタマイズ可能 - インデックス/ヘッダー制御:
index=Falseやheader=Falseで不要な行・列を除外可能 - 出力位置の調整:
startrow・startcolでExcel上の出力開始位置を指定可能 - 数値フォーマット:
float_formatで小数点以下の桁数を制御可能
連携先のシステムやExcelテンプレートに合わせて、適切な引数を設定することがポイントです。