GGPT Master GuideAIを、日々の作業に。

CodexでCSVの重複を整理する

公開 2026-09-12 更新 2026-09-12

CodexでCSVの重複を整理する

関連テーマ:表とデータの内容を確かめる

CSVに似た行が並んでいても、IDが同じというだけで片方を消すと、更新履歴や違う状態を失うことがあります。Codexには「何を重複とするか」を伝え、削除候補の理由を先に出してもらいます。

この記事では全列が完全一致する行だけを整理します。元のCSVを残し、出力を別名にして件数と残った値を確かめる方法です。

完全一致とID一致を分ける

説明用のデータは次の三レコードです。

id,title,status
001,読書会,予定
001,読書会,予定
001,読書会,終了

先頭の二つは全列が一致します。最後は同じIDですが状態が違います。今回のルールなら、全く同じ一件をまとめ、状態が違う二件を残します。

大文字小文字、前後の空白、全角半角を同じとみなすかも別のルールです。今回はそれらを変えず、読み取った文字列が全列で一致するものだけを対象にします。

各段階で確認してから、次の操作へ進みます。

図解CodexでCSVの重複を整理する:進める順番
  1. 1一致条件を決める全列一致とIDだけの一致を分けます。
  2. 2候補を比較違う状態のレコードは残します。
  3. 3件数と値を確認元を残し、別名の結果と理由を照合します。

具体的な依頼と、結果の確かめ方は本文にあります。

一致条件を先に決め、候補を見てから別名で出力します。件数が減っただけでは成功と判定しません。

候補を表にする

このCSVの重複候補を調べてください。
全列の値が完全一致するレコードと、idだけ一致して他列が違うレコードを分けます。
空白の除去、表記の統一、並べ替え、削除はまだしません。
元のレコード位置、一致した列、異なる列、残す案を示してください。
IDは文字列として扱い、001を1に変えないでください。

この例なら、完全一致の組は一組です。「ID001は一件だけ残す」という回答なら、予定と終了の違いが失われるため、依頼条件に戻って確認します。

完全一致だけをまとめる

確認した完全一致の重複だけを一件にまとめ、items-unique.csvへ別名保存してください。
各組の最初のレコードを残し、残すレコードの相対的な順序を維持します。
IDが同じで状態が異なるレコードは両方残します。
元ファイルは変更しません。同名の出力があれば上書きせず報告します。
処理前件数、取り除いた件数、処理後件数、取り除いたレコードの理由を示してください。

期待する結果は、ヘッダーを除いて3件から2件です。「予定」と「終了」が一件ずつ残り、IDはどちらも 001 のままです。文字列の各列を比較する小さな処理をPython 3.12.14で実行し、この例で二件を保持することを確認しました。Codexモデルによる実ファイルの整理成功を実測したものではありません。

件数を合わせて、値も確認する

処理前3件=処理後2件+取り除いた1件、という関係を確認します。ただし件数だけ合っていても、間違った行を消した可能性があります。残った二件を開き、状態とIDを見ます。

実際の業務データで「最新だけ残す」必要がある場合は、日時の列と同時刻の場合の扱いなどを別に決めます。今回の完全一致処理へ、根拠のない最新判定を混ぜません。

元へ戻すときは元のCSVを使い、別名の整理済みファイルを退避します。後から出力先へ追記した情報があれば、消さずに差分を確認してください。

列の読み取りが怪しい場合はCSVの列ずれを先に点検します。別形式へ渡す場合はCSVからJSONへの変換で値の型も決めます。

このテーマを続けて読む

列ずれ・重複・型・文字コードを確認し、元の情報を残して変換します。

表とデータの内容を確かめるの記事をまとめて見る