ここではPandasにおけるExcel(.xlsx)ファイルへの書込み時、データごとに別シートに追記する方法について解説しています。
行ったこと
Pandasにおいて、Excelファイルにデータを書込み際、データごとにシートを変えて書込みを行いました。
以下のプログラムは任意のデータごとにシートを別けて書込むものになります。
プログラム
import openpyxl
import csv
import pandas as pd
#1---データ1
f1 = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
#2---データ2
f2 = pd.DataFrame({
"num":[6,7,8,9,10,11],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
#3---保存ファイルの指定
excel_writer = "test.xlsx"
#4---出力するファイル名を'***.xlsx'としてwriterを定義
writer = pd.ExcelWriter(excel_writer,engine = 'xlsxwriter')
#5---データごとに書込み実行
f1.to_excel(writer,sheet_name = "f1")
f2.to_excel(writer,sheet_name = "f2")
#6---Excelファイルを保存
writer.save()
#7---Excelファイルを閉じる
writer.close()
上記がプログラムになります。
それでは解説していきます。
#1---データ1
f1 = pd.DataFrame({
"num":[0,1,2,3,4,5],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
#2---データ2
f2 = pd.DataFrame({
"num":[6,7,8,9,10,11],
"type":["m","f","m","f","f","m"],
"flag":["_","|","_","|","|","_"]
})
1、2が書込むデータになります。
#3---保存ファイルの指定
excel_writer = "test.xlsx"
3の部分では保存するファイル名を指定しています。
#4---出力するファイル名を'***.xlsx'としてwriterを定義
writer = pd.ExcelWriter(excel_writer,engine = 'xlsxwriter')
4の部分ではExcelWriterを宣言しています。また、引数にファイル名、書込むエンジンを指定しています。
#5---データごとに書込み実行
f1.to_excel(writer,sheet_name = "f1")
f2.to_excel(writer,sheet_name = "f2")
5の部分ではデータごとに書込みを指定しています。引数にxlsxwriter、シート名を指定しています。
#6---Excelファイルを保存
writer.save()
6の部分ではExcelファイルを保存しています。
#7---Excelファイルを閉じる
writer.close()
7の部分ではExcelファイルを閉じています。
結果
f1、f2のシートが生成されて、データが書込まれていることが確認できました。