PythonでExcelファイルにデータを書き出すことはできるのか。
実はこちらもpandasでできる。
今回は「PythonのpandasでExcelにデータを書き出す方法」について紹介する。
この記事を書いている人
記事を読むメリット
pandasでExcelにデータを書き出す方法
pandasでExcelにデータを書き出す方法はある。
まずcsvに書き出す場合は to_csv()
メソッドを使う。
import pandas as pd data_list = [ [1,2,3], [2,3,4], [3,4,5] ] col_list = ["c1","c2","c3"] df = pd.DataFrame(data=data_list, columns=col_list) print(df) # c1 c2 c3 # 0 1 2 3 # 1 2 3 4 # 2 3 4 5 print("Write to CSV.") df.to_csv("out.csv")
するとデータフレームの内容をCSVファイルとして書き出すことができる。
ではExcelファイルで書き出す場合はどうなるだろうか。
Excelファイルで書き出す場合は to_excel()
メソッドを用いる。
import pandas as pd data_list = [ [1,2,3], [2,3,4], [3,4,5] ] col_list = ["c1","c2","c3"] df = pd.DataFrame(data=data_list, columns=col_list) print(df) # c1 c2 c3 # 0 1 2 3 # 1 2 3 4 # 2 3 4 5 print("Write to Excel.") df.to_excel("out.xlsx")
ModuleNotFoundErrorが出る場合
ModuleNotFoundError: No module named 'openpyxl'
このようなModuleNotFoundErrorが出る場合は、名前の通りモジュールが不足している。
というのもExcelファイルの書き出しには内部で別のライブラリを使っている。
Excel2003までの .xls
ファイルには xlwt
、Excel2007以降の .xlsx
ファイルには openpyxl
というライブラリが必要になる。
ModuleNotFoundErrorが出た際は、コマンドプロンプトもしくはターミナルを起動して pip
または pip3
でインストールしよう。
pip install xlwt pip install openpyxl
複数シートに書き込む
Excelファイルに書き込む際、1ファイルの中でシートを分けて書き込みたいこともあるだろう。
そんな場合は ExcelWriter
オブジェクトとして開いている間に to_excel()
メソッドでシート名を指定しながら書き込むと複数シートに書き込むことができる。
import openpyxl data_list2 = [ [3,2,1,0], [4,3,2,1], [5,4,3,2] ] col_list2 = ["c3","c2","c1","c0"] df2 = pd.DataFrame(data=data_list2, columns=col_list2) print(df2) # c3 c2 c1 c0 # 0 3 2 1 0 # 1 4 3 2 1 # 2 5 4 3 2 print("Write to Excel (multi-sheets).") out_excel_multisheets = "out_excel_multisheets.xlsx" with pd.ExcelWriter(out_excel_multisheets) as writer: df.to_excel(writer, sheet_name='sheet1') df2.to_excel(writer, sheet_name='sheet2')
あわせて読みたい