AI Tools 2026年6月11日

7-3 Claude Code で大量の CSV を処理する|Python 自動化入門

数万行のCSVや何十個ものファイルをまとめて処理する方法を解説。小さなサンプルで試してから全件処理する手順、行数・合計値での検証、スクリプトを保存して再利用する運用まで、大量データを安全に扱う型を紹介します。

このレッスンでわかること

「10万行の販売履歴から、特定の条件の行だけ抜き出したい」「店舗ごとに分かれた36個のCSVを1つにまとめたい」——データの量がこのレベルになると、Excel で開くだけでも重く、手作業はほぼ不可能になります。

実はここからが Claude Code の本領です。3章で学んだとおり、Claude Code は Python スクリプトを書いて実行することでデータを処理します。Python(特に pandas というライブラリ)にとって、数万行のCSVはごく軽い仕事ですし、ファイルが100個あってもループで一括処理できます。

このレッスンで身につくのは次の3点です。

  • 大量データを扱うときの鉄則「まず小さなサンプルで試す」
  • 結果を信頼するための検証(行数・合計値の突合)のさせ方
  • 一度作った処理をスクリプトとして保存し、再利用する運用

量が増えるほど、失敗したときの被害も、検証なしで信じることの怖さも大きくなります。だからこそ「型」を持って進めることが大切です。

復習:Claude Code はスクリプトを書いて実行している

まず仕組みのおさらいです。Claude Code に「このCSVを処理して」と頼んだとき、Claude Code 自身がファイルの中身を1行ずつ読んで頭の中で処理しているわけではありません。実際には、

  1. ファイルの先頭数行を読んで、列の構成を把握する
  2. 処理内容に応じた Python スクリプトを書く
  3. そのスクリプトをあなたのパソコン上で実行する
  4. 実行結果(件数や出力ファイル)を報告する

という流れです。この仕組みには、大量データならではの利点があります。処理しているのは Python なので、10万行でも100万行でも原理は同じだということです。AIが読める文章量の制限(コンテキスト)とは関係なく、機械的な処理はスクリプト側が引き受けてくれます。

複数ファイルも同様です。「data フォルダの中のCSVを全部結合して」と頼めば、フォルダ内のファイルを順に読み込むループ処理のスクリプトが書かれ、36個でも100個でも一度に処理されます。

鉄則1:まず小さなサンプルで試す

大量データ処理の最大の鉄則は、いきなり全件を処理しないことです。料理の味見と同じで、まず少量で正しさを確かめてから、全体に適用します。

理由は2つあります。1つは時間です。処理によっては全件で数分〜数十分かかることがあり、間違った処理を全件にかけてからやり直すのは大きな無駄です。もう1つは安全です。小さなサンプルなら、結果を自分の目で全行確認できるため、処理の誤りに気づきやすくなります。

指示はこうします。

sales_2025.csv(約12万行)を処理したいです。
まず先頭1,000行だけを sample.csv として切り出し、それに対して
処理を実行して結果を見せてください。
私が結果を確認してOKを出してから、全件に適用してください。

ポイントは「私がOKを出してから全件に適用」という段階の区切りを入れることです。サンプルの結果を見て、「この列の扱いが違う」「日付の形式がおかしい」と気づいたら、その場で直してもらえます。全件処理は、サンプルで合格してからの最後の一手です。

なお、サンプルは先頭1,000行とは限りません。月ごとに傾向が違うデータなら「各月から100行ずつ」のように、データの性質に合わせた切り出し方を指定するとより安心です。

鉄則2:行数・合計値で検証する

3章のデータ整理でも学んだ「件数検証」を、大量データではさらに徹底します。量が多いほど目視確認ができないため、数字の突合だけが頼りになるからです。

検証の柱は2つあります。

行数の突合:処理の前後で行数の収支が合うことを確認します。

- 入力ファイルそれぞれの行数と、その合計を報告してください
- 出力ファイルの行数を報告し、「入力合計 = 出力」(または
  「入力合計 − 除外件数 = 出力」)が成立することを確認してください

たとえば36ファイルの結合なら、「36ファイルの行数合計 84,213行 = 結合後 84,213行」が一致すれば、取りこぼしや重複読み込みがないと判断できます。

合計値の突合:金額や数量の列があるなら、その合計も前後で照合します。

- 「売上金額」列の合計を、処理前と処理後それぞれ報告してください

行数が合っていても、変換処理のミスで数値が壊れていることはあり得ます(例:金額のカンマ区切りが正しく読めず一部が欠落する)。行数と合計値の両方が合えば、信頼度は大きく上がります。可能なら、合計値のうち1つは Excel や元システムの数字と自分で突き合わせてください。

エラーの扱いも先に決めておきましょう。

- 読み込めない行や形式のおかしい行があれば、黙って捨てずに
  errors.csv に書き出して件数を報告してください

「黙って捨てない」が重要です。大量データの事故の多くは、エラー行が静かに消えることで起きます。

Bad例とGood例で見る、大量CSV処理の頼み方

題材は「店舗別に分かれた36個の月次売上CSVを1つに結合し、店舗別・月別の集計を出す」です。

Bad例

data フォルダのCSVを全部まとめて集計して

サンプル確認も検証もなく、いきなり全件です。「まとめて」「集計して」の中身も曖昧で、列の対応や重複の扱いは運任せになります。

Good例

data フォルダにある36個のCSV(store01_2025-01.csv 形式、合計約10万行)を
結合・集計したいです。

【データの説明】
- 各ファイルの列: 日付, 商品コード, 数量, 売上金額
- ファイル名に店舗番号と年月が入っている

【ステップ1: サンプル確認】
- まず2ファイルだけで結合を試し、結果の先頭20行を見せてください
- ファイル名から「店舗番号」列を追加する処理が正しいかを確認します
- 私がOKを出してから全件に進んでください

【ステップ2: 全件処理】
- 36ファイルを結合し、merged.csv として保存
- 店舗別・月別の売上合計を summary.csv として保存

【検証】
- 各ファイルの行数と合計、結合後の行数を報告(収支の一致を確認)
- 「売上金額」列の合計を、結合前後で照合して報告
- 読み込めない行があれば errors.csv に書き出して件数を報告

【ルール】
- 元のCSVファイルは一切変更しない

構造は「データの説明 → サンプル確認 → 全件処理 → 検証 → ルール」です。一見手厚すぎるようですが、10万行のデータで事故が起きたときの調査時間と比べれば、この指示を書く5分は安いものです。

鉄則3:スクリプトを残して再利用する

大量データの処理は、一度きりで終わらないことがほとんどです。毎月同じ集計をするなら、処理をスクリプトとして保存させるのが決定打になります。

今回の結合・集計の処理を、merge_sales.py として保存してください。
来月以降も同じ処理を使うので、ファイル名の年月部分が変わっても
動くようにしてください。
冒頭にコメントで「何をするスクリプトか・使い方」を日本語で書いてください。

スクリプトを残す利点は3つあります。

  • 速い:翌月は「merge_sales.py を実行して」だけで終わる
  • ブレない:毎回ゼロから頼むと細部の仕様が微妙に変わり得るが、スクリプトなら同じ処理が保証される
  • 引き継げる:処理の手順がファイルとして残るため、属人化しない。Claude Code に「このスクリプトが何をしているか説明して」と頼めば、後任者への説明にも使える

保存先は、データと同じプロジェクトフォルダに scripts フォルダを作ってまとめるのがおすすめです。数か月後の自分が見ても何のスクリプトかわかるよう、冒頭の日本語コメントは必ず書かせましょう。

なお、処理に時間がかかる場合(数十分かかる重い集計など)は、「進捗を途中で表示するようにして」と頼んでおくと、固まったのか動いているのか不安になることがありません。

やってみよう

演習1(ダミーデータで全体の流れを体験):Claude Code に「日付・商品コード・数量・売上金額の列を持つ5万行のダミーCSVを作って」と頼み、その後 Good 例の形式(サンプル確認→全件→検証)で「売上金額が1万円以上の行の抽出」を頼んでみましょう。

演習2(複数ファイルの結合):「店舗別のダミー売上CSVを6ファイル作って」と頼み、6ファイルの結合と店舗別集計を、行数・合計値の検証つきで実行させましょう。報告された行数の収支を自分で電卓でも確かめてください。

演習3(スクリプト化):演習2の処理を merge_test.py として保存させ、ダミーファイルを1個追加してから再実行してみましょう。「一度作った道具を使い回す」感覚がつかめれば、このレッスンの目標達成です。

まとめ

  • Claude Code は Python スクリプトを書いて実行するため、数万〜数十万行のCSVや多数のファイルも処理できる
  • 鉄則1: いきなり全件処理しない。まずサンプルで試し、自分のOKを挟んでから全件へ
  • 鉄則2: 行数の収支(入力合計=出力+除外)と、金額などの合計値の突合で検証する
  • エラー行は黙って捨てさせない。別ファイルに書き出させて件数を報告させる
  • 鉄則3: 繰り返す処理はスクリプトとして保存させる。速く、ブレず、属人化しない
  • 元ファイルは変更させない・進捗を表示させるなど、安全と安心の指示も忘れずに

理解度チェック

Q1. 12万行のCSVに対して新しい変換処理を頼むとき、もっとも適切な進め方はどれでしょう?

  1. 時間を節約するため、最初から12万行すべてに処理を実行させる
  2. まず1,000行程度のサンプルで処理を試し、結果を確認してOKを出してから全件に適用させる
  3. 12万行は多すぎるので、Claude Code には頼まず手作業で処理する
  4. 処理を2回実行させて、結果が同じなら正しいと判断する
解答を見る

正解: 2

大量データの鉄則は「まず小さなサンプルで試す」です。サンプルなら結果を目視で確認でき、処理の誤りに早く気づけます。同じ誤った処理は何度実行しても同じ誤った結果になるため、選択肢4では誤りを検出できません。

Q2. 36個のCSVを1つに結合する処理の検証として、もっとも適切なものはどれでしょう?

  1. 結合後のファイルが開けることだけ確認する
  2. 結合後のファイルサイズが大きければ成功と判断する
  3. 各ファイルの行数の合計と結合後の行数、さらに金額列の合計を前後で突き合わせる
  4. 結合後の先頭10行だけを目視して問題なければ完了とする
解答を見る

正解: 3

大量データは目視で全体を確認できないため、数字の突合が検証の柱になります。行数の収支で取りこぼしや重複を、合計値の照合で数値の破損を検出できます。先頭10行の目視(選択肢4)は補助にはなりますが、それだけでは途中のファイルの取りこぼしに気づけません。