CSVの重複削除:注文IDだけで消す前に確認したいこと

記事
IT・テクノロジー
CSVの件数を減らしたいとき、「同じ注文IDだから重複」と決めてしまうと、別の商品明細まで消える場合があります。先に決めるのは、何の列で同じと判定し、どの行を残すかです。

今回は同じ列構造の架空データ4行を使い、判定列を変えた結果を比べます。実在の注文・顧客情報は含みません。

1.同じIDでも、明細が違うことがある

入力の見出しは「注文ID,商品,金額」です。
0001,りんご,1200
0001,りんご,1200
0002,みかん,800
0002,りんご,1200

0001の2行は、この3列の値がすべて同じです。一方、0002は商品と金額が違います。1つの注文に2商品があるなら、両方が必要な明細かもしれません。IDの重複だけでは、削除してよいと判断できません。

この例の元データは4行、金額列の合計は4,400です。これは架空例の数値確認であり、請求額や会計上の正しい金額を判断したものではありません。

2.判定列を変えると、残る行も変わる

「注文IDだけで比較し、入力順で最初の行を残す」と、結果は次の2行です。
0001,りんご,1200
0002,みかん,800

金額列の合計は2,000。0002のりんごの行も除かれています。

「注文ID・商品・金額の3列がすべて一致するときだけ、最初の行を残す」と、結果は次の3行です。
0001,りんご,1200
0002,みかん,800
0002,りんご,1200

金額列の合計は3,200。0001の同一行だけが1行減ります。ただし、3列が同じでも別々の正当な明細の場合があります。明細IDなどの区別がないデータは、作成元や運用ルールの確認が必要です。全列一致なら必ず削除してよい、という意味ではありません。

3.最初の行は、最新の行とは限らない

今回の「最初」は入力順です。日付の新しい行や金額の正しい行を選んでいるわけではありません。入力順を逆にすると、IDだけの比較では0002のりんごが残ります。

処理前に、判定列、残す行、ファイルの結合順を決めます。「最新を残す」が必要なら、日付列と同日時の扱いまで別に決めてください。元ファイルは保存し、結果を別名で出力して、減った件数と除外された行を確認します。

検証した範囲と、相談前の準備

2026年10月11日、自作のCSV解析と最初の行を残す比較処理で、4行から2行/3行になること、合計4,400/2,000/3,200、入力順による採用行の違い、保存したCSVの再読込、IDの先頭ゼロ保持を確認しました。特定のEC・会計システムへの取り込みは未検証です。制作補助にAIを使用しています。

毎月同じ作業を繰り返す場合は、匿名化した入力例と「残したい行・除外したい行」の出力例があると、ルールを相談しやすくなります。判定列が未定なら、その点も見積り相談で教えてください。

現行サービスの基本範囲は、1種類の列構造・最大10ファイル・合計10MB・最大5操作です。Python実行環境が必要です。最新行の選択や独自の判定を、この基本範囲に含まれると判断せず購入前に相談してください。価格・納期は出品内容と見積りで確認します。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す