仕事終わりに、ちょっとAI。使い方からツールづくりまで
自動化 · READ & TRY

毎月のCSVをまとめたい|列の違いを先に確認しよう

結合前のチェックから、件数の照合まで。売上データではなく架空のタスク表で練習します。

しごと後のAI副業ノート ·
架空の例で試す実用ガイドです。利用環境や機能は変わることがあります。

見た目が似ていても、まず列名を見よう

月ごとのCSVを一つにしたいとき、単純につなぐだけでは見出しまでデータになってしまうことがあります。列の順番や文字コードも違うかもしれません。最初は架空のタスク表2ファイルを使い、同じ項目かを確認しましょう。この記事は作成依頼の仕様例です。実データを処理する前に、生成したツールの確認が必要です。

例はtask,statusの2列。1月は2行、2月は3行で、結合後のデータ行は5行になる想定です。ヘッダーは先頭の1回だけにします。

仕様を、この形で決めよう

目的:monthlyフォルダ直下のCSVをまとめる。
入力:UTF-8またはUTF-8 BOM付き。必須列はtask,status。
列の順番が違っても列名で読む。余分な列や不足列があれば停止。
順番:ファイル名の昇順、その中は元の行順。
出力:merged.csv。入力フォルダの外へ作る。既存なら停止。
source_file列に元ファイル名を付ける。
元ファイルは変更しない。重複行も勝手に消さない。

同じタスクが2回あっても、正しい重複か入力ミスかは機械だけでは分かりません。重複を消す機能は後で条件を決め、最初は元の行を保ちます。

件数と内容を照らし合わせよう

  1. 1月の2行と2月の3行が、合計5行になるか確認する。
  2. ヘッダーが途中に混じっていないか見る。
  3. カンマや改行を含む項目が壊れていないか見る。
  4. source_fileで元のファイルへ戻れるか確認する。
  5. 必須列がないファイルを混ぜたとき、停止するか試す。

CSVは文字を単にカンマで分割するのではなく、引用符なども扱えるCSV用の読み書き処理を使います。Pythonなら標準のcsvモジュールが候補になります。

文字化けしたときは、元ファイルを残そう

日本語が崩れたら、元のCSVをコピーして文字コードを確認します。文字コードが違うものを、無条件に同じ設定で読ませるのは避けます。「読めない文字を無視する」対応だと、名前や項目が欠けても気づけません。

結合ができたら、全件数だけでなく元ファイルから数行ずつ選んで照合します。集計に進む前に、読み取りと結合が正しいことを確かめておきましょう。

参考にした公式ガイド

手順・例文・チェック表は、このサイトで作成した練習用の例です。機能の説明は次の公式資料も確認してください。