pandas.DataFrame.to_excel()
pandas.DataFrame.to_excel() を使うと、データフレームを Excelファイルに書き出すことができます。引数で指定したファイル名がすでに存在している場合はファイルを上書きし、存在しない場合は新規ファイルを作成します。Excel ファイルから読み込んだデータをデータフレームに格納する関数については以下の記事を参照してください。
最初に国別の人口と面積を格納したデータフレーム df1 を作成しておきます (出典:Wikipedia)。
# PANDAS_WRITE_EXCEL
# In[1]
import numpy as np
import pandas as pd
# 行ラベル
r = ["中国", "インド", "アメリカ合衆国"]
# 列ラベル
c = ["人口", "面積"]
# データ
arr = np.array([[1345750000, 9596961],
[1198003000, 3287263],
[314658000, 9629091]])
# データフレームを作成
df1 = pd.DataFrame(arr, index = r, columns = c)
pop_area_c.xlsx という名前で Excelファイルを新規作成して、データフレーム df1 を保存してみます。
# In[2]
df1.to_excel("pop_area_c.xlsx")
pop_area_c.xlsx を開いて中身を確認しておきます。
startrow, startcol
デフォルト設定で書き込むと表はシートの左上隅にくっついていますが、startrow, startcol で表の位置を指定することができます。表の上に 3 行、左に 1 列の空白セルを挿入してみます (pop_area_c.xlsx に上書きします)。
# In[3]
df1.to_excel("pop_area_c.xlsx", startrow=3, startcol=1)
sheet_name
sheet_name でシート名を設定することができます (デフォルトのシート名は "sheet1")。
# In[4]
df1.to_excel("pop_area_c.xlsx", sheet_name="pop1-3")
pandas.ExcelWriter
新しいデータフレーム df2 と df3 を作成しておきます。
# In[5]
# 行ラベル
r2 = ["インドネシア", "ブラジル", "パキスタン"]
# 列ラベル
c2 = ["人口", "面積"]
# データ
arr2 = np.array([[229964000, 1904569],
[193733000, 8514877],
[180808000, 796095]])
# データフレームを作成
df2 = pd.DataFrame(arr2, index = r2, columns = c2)
# 行ラベル
r3 = ["バングラデシュ", "ナイジェリア", "ロシア"]
# 列ラベル
c3 = ["人口", "面積"]
# データ
arr3 = np.array([[162220000, 143998],
[154728000, 923768],
[140873000, 17098242]])
# データフレームを作成
df3 = pd.DataFrame(arr3, index = r3, columns = c3)
ExcelWriter オブジェクトを使うと、複数シートにデータフレームを同時に書き出すことができます。
# In[6]
# シート"pop1-3"にdf1,"po-4-6"にdf2を書き込む
with pd.ExcelWriter("pop_area_c.xlsx") as ew:
df1.to_excel(ew, sheet_name="pop1-3")
df2.to_excel(ew, sheet_name="pop4-6")
pandas はバックグラウンドで xlrd や openpyxl, xlsxwriter などのモジュールを使用しています。pandas.ExcelWriter() の engine に openpyxl を渡し、追記モード (mode="a") を指定すると、既存のブックに新しいシートを追加してデータを書き込むことができます。
# In[7]
# pop_area_c.xlsxにシートを追加してデータを書き込む
with pd.ExcelWriter("pop_area_c.xlsx",
engine="openpyxl", mode="a") as ew:
df3.to_excel(ew, sheet_name="pop7-9")
下記は誤植と思われますので、ご確認ください。
WRITE_EXCEL-1 プログラムで下記の 2 行を追加。
import numpy as np
import pandas as pd
WRITE_EXCEL-1 プログラムの下の文で、df → df1
直しておきました。
ありがとうございます。m(_ _)m
【ChatGPT講義:pandas.DataFrame.to_excelでExcelシートに書き出す方法】
講師: 今日はpandas.DataFrame.to_excelの使い方についてお話ししましょう。pandas.DataFrame.to_excelは、Pandasライブラリを使用してDataFrame(データ表)をExcelファイルとして保存するための便利なメソッドです。これにより、Pythonで処理したデータをExcel形式で保存することができます。
生徒: なるほど!Excelファイルにデータを保存する方法があるんですね。具体的にどのように使うのでしょうか?
講師: そうですね。まずは基本的な使い方を見てみましょう。to_excelメソッドは、DataFrameオブジェクトに対して直接呼び出すことができます。例えば、以下のようなコードを書いてみましょう。
生徒: to_excelメソッドは、Excelファイルの保存先として指定したファイル名を受け取るんですね。その他に何かオプションはありますか?
講師: そうですね。to_excelメソッドにはいくつかのオプションがあります。例えば、indexというオプションを使うことで、DataFrameの行番号を保存するかどうかを指定することができます。index=Falseとすると行番号は保存されません。また、他にもシート名を指定したり、特定の範囲のセルにデータを書き込むこともできます。
生徒: なるほど、便利ですね。Excelファイルに保存するだけでなく、シート名や書き込むセルの範囲も指定できるんですね。
講師: そうです。to_excelメソッドのオプションを使うことで、保存するExcelファイルの形式や内容を自由にカスタマイズすることができます。詳細な使い方については、Pandasの公式ドキュメントを参照してみると良いでしょう。
生徒: 分かりました!pandas.DataFrame.to_excelを使って、データをExcelファイルとして保存する方法を学びました。実際に使ってみたいと思います。ありがとうございました!
講師: どういたしまして。頑張って実践してみてください!もしわからないことや困ったことがあればいつでも聞いてくださいね。