ITや趣味など気軽に投稿しています。

【Pandas】データフレームをExcelファイルとして書き出す

PandasのデータフレームをExcelファイルとして出力することで、他のツールやチームとのデータ連携が容易になります。

この記事では、DataFrame.to_excel()の基本的な使い方から、よく使う引数の詳細まで解説します。

Pandasバージョン

本記事は、Pandas 2.2.3の情報を基に執筆しています。

import pandas as pd
print(pd.__version__)

>>
2.2.3

DataFrame.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_formatfloat型の出力フォーマット
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")
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"])

header

ヘッダーの出力有無を指定します。Falseを指定するとヘッダーが出力されません。デフォルトはTrueです。

df.to_excel("output/output.xlsx", header=False)
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"])

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"])

startrow

Excel上での出力開始位置(行)を整数で指定します。データフレームのデータは全件出力されます。

df.to_excel("output/output.xlsx", startrow=5)
df.to_excel("output/output.xlsx", startrow=5)

startcol

Excel上での出力開始位置(列)を整数で指定します。データフレームのデータは全件出力されます。

df.to_excel("output/output.xlsx", startcol=3)
df.to_excel("output/output.xlsx", startcol=3)

活用例: startrowstartcolを組み合わせることで、既存のExcelテンプレートの特定の位置にデータを出力するといった使い方が可能です。

まとめ

今回は、DataFrame.to_excel()を使ったExcelファイルへの出力方法を紹介しました。

  • 基本的な出力: df.to_excel("ファイルパス")で簡単にExcel出力できる
  • シート名指定: sheet_nameで出力シートの名前をカスタマイズ可能
  • インデックス/ヘッダー制御: index=Falseheader=Falseで不要な行・列を除外可能
  • 出力位置の調整: startrowstartcolでExcel上の出力開始位置を指定可能
  • 数値フォーマット: float_formatで小数点以下の桁数を制御可能

連携先のシステムやExcelテンプレートに合わせて、適切な引数を設定することがポイントです。