ここではpandas.DataFrameからExcelにデータ出力する方法についてのべます。
データ分析や加工で用いるpandas。pandasは様々なデータソースからDataFrameにデータを読み込み、加工して結果を他へ出力するためのプラットフォームとしての役割をもっています。
加工して出力した後のデータはどうするのか。システムとしてデータを保持するのであればデータベースでも良いでしょう。しかし一般の人にもデータを共有する場合には方法が限られます。誰でも利用方法がわかるものでなくてはなりません。
そのように考えたとき分析結果や処理結果をExcelとして出力・共有するというのは良い方法だとおもいます。今回はDataFrameからExcelシートにデータを出力する方法についてのべます。
目次
- Excelシートを作成しデータを出力する to_excel
- 実装サンプル
- 複数シート(Book)に出力する Excelwriter
- まとめ
Excelシートを作成しデータを出力する to_excel
DataFrameから新しいExcelシートにデータを出力する場合にはDataFrameのto_exceメソッドを使います。
to_excel('ファイル名.xlsx')
これでファイル名でExcelファイルで出力されます。シート名を指定していないため'Sheet1'という名前でシートが作成されます。
シート名を指定するときにはsheet_name='シート名'で指定します。
to_excel('ファイル名.xlsx',sheet_name='シート名')
↑目次
実装サンプル
Excelからファイルを読み込んでDataFrameに格納し、DataFrameのデータをExcelシートとして出力します。
読み込むファイルは以前にもでた以下のファイルになります。
sample1-read-excel.xlsxファイル
import pandas as pd
data_frame_dict=pd.read_excel('sample1-read-excel.xlsx',index_col='id',header=1,sheet_name=['地域','顧客'])
読み込んだ後'地域.xlsx'と'顧客.xlsx'というファイル名で出力します。read_excelを用いて複数シートを読み込んだ場合、keyとkeyに紐付くDataFrameのディクショナリで格納されるため、以下のようにforループを回してDataFrameのディクショナリに含まれたディクショナリをすべてExcelシートのファイルにして出力します。
for sheet_name,data_frame in data_frame_dict.items():
file_name=sheet_name + '.' + 'xlsx'
data_frame.to_excel(file_name,sheet_name=sheet_name)
↑目次
複数シート(Book)に出力する Excelwriter
複数シートを1つのExcelファイルに出力する場合にはExcelwriterを用いて同一writerに対し複数回to_excelメソッドをよびだします。先程までのソースに以下を追加します。
with pd.ExcelWriter('ExcelWriterのテスト.xlsx') as writer:
for sheet_name,data_frame in data_frame_dict.items():
data_frame.to_excel(writer, sheet_name)
「ExcelWriterのテスト.xlsx」というファイルが作成されDataFrameのディクショナリに入っているkey名でExcelシートが作成されます。各シートには対応するDataFrameのデータが出力されます。
↑目次
まとめ
データフレームをExcelに出力する方法についてのべました。Sheetのみに出力する場合と、複数シートに出力する方法についてみてみました。簡単にデータをExcelに出力することができるto_excelメソッドですが、既存のExcelを編集することは苦手です。そのような場合にはopenpyxlを使って直接Excelファイルを編集してみてください。
↑目次
Comment on this article
コメントはまだありません。
Send comments