【Python】複数のExcelファイルを1つに統合する方法|pandasでの一括処理

【Python】複数のExcelファイルを1つに統合する方法|pandasでの一括処理 Python

複数の部署や拠点から提出されるExcelファイルを、毎回手作業で1つにまとめていませんか?Pythonのpandasライブラリを使えば、同一フォーマットのExcelファイルを自動で一括統合することができます。

この記事では、フォルダ内のExcelファイルをすべて読み込み、1つのファイルにまとめる方法を解説します。

前提:pandasとopenpyxlのインストール

pip install pandas openpyxl

openpyxlはExcelの読み書きエンジンとして必要になります。

対象ファイルの構成例

以下のような構成のExcelファイルを想定します(すべて同じ列構成)。

  • ./excel_data/sales_tokyo.xlsx
  • ./excel_data/sales_osaka.xlsx
  • ./excel_data/sales_nagoya.xlsx

統合処理スクリプト

import pandas as pd
import os

# Excelファイルが格納されているフォルダ
folder_path = "./excel_data"

# 拡張子がxlsxのファイルを収集
excel_files = [f for f in os.listdir(folder_path) if f.endswith(".xlsx")]

# 読み込んだデータを格納するリスト
df_list = []

for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path, engine="openpyxl")
    df["ファイル名"] = file  # どのファイル由来か記録
    df_list.append(df)

# 全ファイル分のDataFrameを結合
merged_df = pd.concat(df_list, ignore_index=True)

# 結果を保存
merged_df.to_excel("統合結果.xlsx", index=False)
print("統合が完了しました。")

オプション:特定のシートを指定して読み込む

シート名が固定されている場合、以下のように指定できます。

df = pd.read_excel(file_path, sheet_name="売上データ", engine="openpyxl")

応用例:日付や店舗名でソートする

# 日付で昇順ソート
merged_df.sort_values(by="日付", inplace=True)

# 店舗名ごとに集計
summary = merged_df.groupby("店舗")["売上"].sum()
print(summary)

まとめ

pandasを使えば、複数のExcelファイルを自動で統合・加工・出力する処理を簡単に構築できます。毎月のレポート作成や部門別の集計作業など、手間のかかる作業を効率化できる強力な手段です。

ファイル構成や列名が統一されていれば、わずか数行のコードで一括処理が可能になります。ぜひ業務に取り入れてみてください。