Pythonでデータフレームを複数シートのExcelファイルにエクスポートする方法
データ分析の現場では、1つのExcelファイルの中に複数のシートとしてデータフレームを保存したい場面がよくあります。例えば、同じデータフレームを「first_sheet」「second_sheet」「third_sheet」という3つのシートに分けて出力するケースを想定してみましょう。
この記事では、pandasとxlsxwriterを組み合わせて、データフレームを複数シートのExcelファイルに書き出す手順をわかりやすく解説します。
解決手順
xlsxwriterモジュールをインポートし、Excelへの変換に使用できるようにします
データフレームを定義して、変数dfに代入します
pd.ExcelWriter関数を呼び出し、作成したいExcelファイル名を指定したうえで、engine引数に「xlsxwriter」を設定します
excel_writer = pd.ExcelWriter('pandas_df.xlsx', engine='xlsxwriter')次に、to_excelメソッドを使って、データフレームを複数のシートに書き込みます。sheet_name引数にそれぞれ異なるシート名を指定するのがポイントです
df.to_excel(excel_writer, sheet_name='first_sheet') df.to_excel(excel_writer, sheet_name='second_sheet') df.to_excel(excel_writer, sheet_name='third_sheet')
最後に、excel_writerを保存して処理を完了させます
excel_writer.save()
コード例
それでは、実際のコードを見ながら動作を確認していきましょう。
import pandas as pd
import xlsxwriter
df = pd.DataFrame({'Fruits': ["Apple","Orange","Mango","Kiwi"],
'City' : ["Shimla","Sydney","Lucknow","Wellington"]
})
print(df)
excel_writer = pd.ExcelWriter('pandas_df.xlsx', engine='xlsxwriter')
df.to_excel(excel_writer, sheet_name='first_sheet')
df.to_excel(excel_writer, sheet_name='second_sheet')
df.to_excel(excel_writer, sheet_name='third_sheet')
excel_writer.save()実行結果
このコードを実行すると、「pandas_df.xlsx」というExcelファイルが生成され、その中に同じ内容のデータが3つのシートに格納されます。

補足:新しいバージョンのpandasでの注意点
pandas 1.5.0以降では、上記のsave()メソッドは非推奨となっています。代わりにclose()メソッドを使用するか、with文を活用すると安全です。with文を使えば、ブロックを抜けた時点で自動的にファイルが保存・クローズされるため、記述ミスによるデータ消失を防げます。
with pd.ExcelWriter('pandas_df.xlsx', engine='xlsxwriter') as writer:
df.to_excel(writer, sheet_name='first_sheet')
df.to_excel(writer, sheet_name='second_sheet')
df.to_excel(writer, sheet_name='third_sheet')このように、pd.ExcelWriterとxlsxwriterを組み合わせるだけで、複数シートへのエクスポートが簡単に実現できます。レポート作成やデータの受け渡しなど、日常的な業務の効率化にぜひ活用してください。
-
PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】
Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins
-
ExcelでCSVファイルを複数のシートに結合する方法(初心者向けかんたん手順)
Excelで作業をしていると、複数のCSVファイルを同時に扱わなければならない場面によく出くわします。そうしたCSVファイルを1つのワークブックにまとめたいというニーズは非常に頻繁に発生します。この記事では、ExcelでCSVファイルを複数のシートに結合するための手順を、ステップごとにわかりやすく解説します。 サンプルのCSVファイルと、結合後の完成ワークブックはこちらから無料でダウンロードできます。 CSVソースファイル: 結合後の最終ファイル: CSVファイルを複数のExcelシートに結合する手順 ここでは例として、6年生・7年生・8年生それぞれの生徒の各教科の成績表が、3つ