こんな感じのデータフレームがあったとして
import numpy as npimport pandas as pdimport osdf = pd.DataFrame([{'col_0': "A", 'col_1': 1, 'col_2': np.nan}, {'col_0': "A", 'col_1': 4, 'col_2': 5}, {'col_0': "B", 'col_1': 7, 'col_2': 8}, {'col_0': "B", 'col_1': 9, 'col_2': 6}])df
col_0の値ごとにシートを分けてexcelに保存したいとする。
そんなときのソース。
mode=’a’というのがポイント。appendのa
# Cドライブ直下の場合(保存場所は任意のパスに変更)dir='C:\'sheet_names = df['col_0'].unique().tolist()savename = os.path.join("dir", "hogehoge.xlsx")if os.path.exists(savename): os.remove(savename)for sheet_name in sheet_names: cdf = df.query('col_0 == @sheet_name') if os.path.exists(savename): with pd.ExcelWriter(savename, engine="openpyxl", mode="a") as writer: cdf.to_excel(writer, sheet_name=sheet_name, index=False) else: with pd.ExcelWriter(savename, engine="openpyxl") as writer: cdf.to_excel(writer, sheet_name=sheet_name, index=False)