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

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

今回は、PandasデータフレームをExcelファイルとして書き出す方法を紹介します。

Pandasバージョン

本記事は、Pandas2.2.3の情報を基に執筆しています。

import pandas as pd
print(pd.__version__)

>>
2.2.3

pd.to_excel()

Excelの出力にはpd.to_excel()を用います。必須の引数として、出力するファイルのパスを拡張子付きで指定します。相対パスでも絶対パスでも問題ありません。

DataFrame.to_excel(excel_writer*sheet_name=’Sheet1′na_rep=”float_format=Nonecolumns=Noneheader=Trueindex=Trueindex_label=Nonestartrow=0startcol=0engine=Nonemerge_cells=Trueinf_rep=’inf’freeze_panes=Nonestorage_options=Noneengine_kwargs=None)

以下のような形式で指定します。

df.to_excel("output/output.xlsx")

引数

引数必須説明
excel_writer出力するファイルのパスまたはExcelWriterを指定する。
sheet_name出力するシート名をStringで指定する。デフォルトは‘Sheet1’
na_rep欠損値の表現。デフォルトは”。
float_format出力するfloat型のフォーマットを指定する。
columns出力するカラムをリスト形式で指定する。
headerFalseとした場合、ヘッダーを出力しない。
列名をリストで指定した場合、その列名をヘッダーとして出力される。
indexFalseとすると、インデックス(行名)を出力しない。
デフォルトはTrue。
index_labelインデックス列の列名をStringで指定する。
startrow出力を開始するExcelの行を整数で指定する。
startcol出力を開始するExcelの列を整数で指定する。
engine ‘openpyxl’または‘xlsxwriter’のいずれかを指定する。
merge_cellsマルチインデックスと階層行を結合したセルとして出力する。
inf_rep無限を示す文字列を指定する。デフォルトは’inf’。
freeze_panes「ウィンドウ枠の固定」を行うセルを指定する。
(行、列)のタプルで指定する。
storage_optionsS3などリモートのファイルへのアクセスに必要な情報を辞書形式で指定する。

ここからは、よく使う引数をいくつか紹介しよう。

sheet_name

sheet_nameを指定することで、出力するシートの名前を変えることができます。

df.to_excel("output/output.xlsx", sheet_name="test")

float_format

出力するfloat型のフォーマットを指定します。例えば”%.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上の出力位置(行)をずらす引数です。出力を開始するExcelの行を整数で指定します。
※データフレームのデータは全件出力されます。

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

startcol

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

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

Pythonでデータサイエンスするなら

Pythonでデータサイエンスをするなら、以下の書籍がおすすめです。Pandas、matplotlib、Numpy、scikit-learnといったデータサイエンスに必要なライブラリを、体系立てて一通り学ぶことができます。

ややお値段高めですが、これ1冊で十分という内容・ボリュームなので、損はしないと思います^^

まとめ

pandasでExcelファイルを書き出す方法を紹介しました。Excelを使ったデータ連携の場面は少なくないと思います。是非参考にしてみてください。

連携しやすい形で出力することがポイントだな。
今回はここまでにしよう。

ありがとうございました~~♪