データ整理って、ちょっとしたことなのに、毎日くり返すと案外たいへん。
今日は、同じ名前のExcelファイルが月ごとに増えていく作業フォルダを見て、
「あ、これ、Pythonでちょっと楽にできるかも」と思った話です。
目次
🧩 1. やりたかったこと
- 毎月「202506abc.xlsx」のように増えるExcelファイル。
- 中身は同じ構造だけど、人の手でまとめるのはちょっと面倒。
- フォルダ内を全部まとめて1つのExcelにしたい!
🔧 2. Pythonで書いた小さなしくみ
💡 プログラム1|ライブラリの設定
# プログラム1|ライブラリの読み込み( # の右側はコメントですよ 書かなくても良い )
import glob # ファイル一覧を取得するための標準ライブラリ
import pandas as pd # データ操作のための定番ライブラリ「pandas」
Pandasはデータ整理の相棒。globはファイル一覧の取得に便利です。
💡 プログラム2|ファイルを探す
# プログラム2|対象のExcelファイルを検索
def_path = r"\\host-name\2025\202506" # Excelファイルが入っているフォルダのパス
files = glob.glob(def_path + r'\202506*.xlsx') # "202506"で始まるExcelファイルをすべて取得
202506*.xlsxという形で、月別のExcelファイルを全部取得します。
💡 プログラム3〜4|1つずつ読み込む
# プログラム3|空のリストを準備(データを格納するため)
list = [] # 後で読み込んだDataFrameを追加していく入れ物
# プログラム4|ファイルを1つずつ読み込み、リストに追加
for file in files:
# 各Excelファイルの中身を、6行目(header=5)から読み込む
df = pd.read_excel(file, header=5)
list.append(df) # 読み込んだDataFrameをリストに追加
header=5にしてるのは、5行目からがデータ本体だから。
これは現場ルールに合わせて変えられます。
💡 プログラム5|全部まとめて、列名もそろえる
# プログラム5-1|すべてのデータを1つにまとめる
df = pd.concat(list) # list内のすべてのDataFrameを縦に結合(行方向)
# プログラム5-2|ヘッダー名を別ファイル「管理表_ヘッダー.xlsx」から取得して統一
col = pd.read_excel('管理表_ヘッダー.xlsx').columns # ヘッダーだけ読み取る
df.columns = col # 現在のdfの列名を、管理表の列名に置き換える
# プログラム5-3|"Unnamed"という列名(空白列や結合ミスの可能性)を空文字に変換
df.columns = ["" if "Unnamed" in col else col for col in df.columns]
# → "Unnamed: 3" のような列を "" に置き換え、あとで削除しやすくする工夫
ヘッダー行は「管理表_ヘッダー.xlsx」から取っています。
“Unnamed”を含む列は空白にすることで、不要な列を明確にできます。
💡 プログラム6|まとめたデータを書き出す
# プログラム6|すべてのデータをExcelファイルとして保存
df.to_excel('total.xlsx', index=False) # インデックス列を含めずに出力
最後に、「total.xlsx」として1つのファイルに出力。
これで、毎月の手作業がちょっと楽になりました。
🌿 3. おわりに|暮らしとPythonのやさしい関係
この小さなスクリプトで、毎月の“まとめるだけの作業”にさよならできました。
大きなシステムじゃなくても、こうして自分の手元でちょっとだけ助けてくれるPythonが好きです。