【Pandas入門】DataFrameをExcelファイルの複数シートに保存する方法
PandasのDataFrameを1つのExcelファイル内の複数シートに保存したい場合は、pd.ExcelWriter()メソッドを利用します。このメソッドはコンテキストマネージャとして使うことで、複数のDataFrameをそれぞれ別のシート名で書き込むことができます。
なお、ExcelWriter()を使用する前に、依存ライブラリであるopenpyxlがインストールされていることを確認してください。未インストールの場合は、以下のコマンドでインストールできます。
pip install openpyxl
手順
- 二次元・サイズ変更可能な表形式データであるDataFrame df1 を作成します。
- 入力用のDataFrame df1 の内容を出力して確認します。
- 同様にもう一つのDataFrame df2 を作成し、内容を出力します。
- ExcelWriter()メソッドを使い、各DataFrameを指定したシート名でExcelファイルに書き込みます。
コード例
import pandas as pd
df1 = pd.DataFrame(
[[5, 2], [4, 1]],
index=["One", "Two"],
columns=["Rank", "Subjects"]
)
df2 = pd.DataFrame(
[[15, 21], [41, 11]],
index=["One", "Two"],
columns=["Rank", "Subjects"]
)
print("DataFrame 1:\n", df1)
print("DataFrame 2:\n", df2)
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet_name_1')
df2.to_excel(writer, sheet_name='Sheet_name_2')実行結果
DataFrame 1:
Rank Subjects
One 5 2
Two 4 1
DataFrame 2:
Rank Subjects
One 15 21
Two 41 11解説
このスクリプトを実行すると、プロジェクトディレクトリに「output.xlsx」というExcelファイルが新規作成され、df1の値が「Sheet_name_1」、df2の値が「Sheet_name_2」という2つの異なるシートにそれぞれ保存されます。
with文を使ってExcelWriterを開くことで、ブロックを抜けた時点でファイルが自動的に保存・クローズされるため、書き忘れによるデータ消失を防げるのがポイントです。3つ以上のDataFrameを扱いたい場合も、同じようにto_excel()に異なるsheet_nameを指定して追記していくだけで対応できます。
-
【Excel VBA】シートを行単位で複数のシートに自動分割する方法
計算や管理をしやすくするために、1枚のExcelシートを行を基準に複数のシートへ分割したい場面は少なくありません。本記事では、Microsoft Excel VBAのコードを使って、シートを指定した行数ごとに自動的に分割する方法を、具体例とともにわかりやすく解説します。 練習用ワークブック 以下のワークブックをダウンロードして、実際に手を動かしながら練習してみましょう。 VBAでExcelシートを行ごとに複数のシートへ分割する VBA(Visual Basic for Applications)は、Microsoft Excelで最も広く使われているプログラミング言語のひとつです。ユーザー定義
-
Excelで複数のワークシートを1つのワークブックに結合する4つの方法
Microsoft Excelで作業を行う際、複数のワークシートを1つにまとめることで、類似したデータを単一のワークブックに統合でき、データ管理が格段にしやすくなります。結合とは、複数のドキュメントを1つのファイルにまとめる操作のことです。本記事では、Excelで複数のワークシートを1つのワークブックに結合するさまざまな方法をご紹介します。 練習用にワークブックをダウンロードして、実際に手を動かしながら学ぶこともできます。 Excelで複数のワークシートを1つのワークブックに結合する4つの方法 すべてのデータを1つのワークブックに集めたり、複数のワークシートのデータを整理したりしたい場合は、以