






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')


あわせて読みたい



