pandasでExcelデータの分割保存【Python】

Excelデータの分割保存
やりたいこと:年間や月間の売上データを、月毎や日毎のデータに分割して保存する。

月ごとに別ファイルとして保存

import pandas as pd
import os

# Excel ファイルの読み込み
df = pd.read_excel("sales_data.xlsx")  # 読み込むファイル名を指定
# 日付を datetime 型に変換
df["日付"] = pd.to_datetime(df["日付"])
# 保存用フォルダ作成
os.makedirs("monthly_reports", exist_ok=True)
# 月ごとに別ファイルとして保存
for month, data in df.groupby(df["日付"].dt.month):
    filename = f"monthly_reports/{month}_sales.xlsx"
    data.to_excel(filename, index=False)

会計年度ごとに別ファイルとして保存

# 日付を datetime 型に変換
df["日付"] = pd.to_datetime(df["日付"])
# 会計年度を算出(4月から翌年3月を1会計年度とする)
df["年度"] = df["日付"].apply(lambda x: x.year if x.month >= 4 else x.year - 1)
# 保存用フォルダ作成
os.makedirs("fiscal_reports", exist_ok=True)
# 会計年度ごとに別ファイルとして保存
for year, data in df.groupby(df["年度"]):
    filename = f"fiscal_reports/{year}_fiscal_sales.xlsx"
    data.to_excel(filename, index=False)

日ごとに別ファイルとして保存

import pandas as pd
import os

# Excel ファイルの読み込み
file_path = "sales_data.xlsx"
df = pd.read_excel(file_path)
# 日付を datetime 型に変換
df["日付"] = pd.to_datetime(df["日付"])
# 当月の1日と月末を取得
start_date = pd.to_datetime("today").replace(day=1)
end_date = start_date + pd.offsets.MonthEnd(0)
# 当月のデータのみを抽出
df_filtered = df[(df["日付"] >= start_date) & (df["日付"] <= end_date)]
# 保存用フォルダ作成
os.makedirs("daily_reports", exist_ok=True)
# 日ごとに別ファイルとして保存(ファイル名を YYYYMMDD 形式に変更)
for date, data in df_filtered.groupby(df_filtered["日付"].dt.date):
    filename = f"daily_reports/{date.strftime('%Y%m%d')}_sales.xlsx"
    data.to_excel(filename, index=False)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です