Python
 Computer >> コンピューター >  >> プログラミング >> Python

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つのシートに格納されます。

Pythonでデータフレームを複数シートのExcelファイルにエクスポートする方法

補足:新しいバージョンの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を組み合わせるだけで、複数シートへのエクスポートが簡単に実現できます。レポート作成やデータの受け渡しなど、日常的な業務の効率化にぜひ活用してください。

  1. PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】

    Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins

  2. ExcelでCSVファイルを複数のシートに結合する方法(初心者向けかんたん手順)

    Excelで作業をしていると、複数のCSVファイルを同時に扱わなければならない場面によく出くわします。そうしたCSVファイルを1つのワークブックにまとめたいというニーズは非常に頻繁に発生します。この記事では、ExcelでCSVファイルを複数のシートに結合するための手順を、ステップごとにわかりやすく解説します。 サンプルのCSVファイルと、結合後の完成ワークブックはこちらから無料でダウンロードできます。 CSVソースファイル: 結合後の最終ファイル: CSVファイルを複数のExcelシートに結合する手順 ここでは例として、6年生・7年生・8年生それぞれの生徒の各教科の成績表が、3つ