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行ずつ読んで頭の中で処理しているわけではありません。実際には、
- ファイルの先頭数行を読んで、列の構成を把握する
- 処理内容に応じた Python スクリプトを書く
- そのスクリプトをあなたのパソコン上で実行する
- 実行結果(件数や出力ファイル)を報告する
という流れです。この仕組みには、大量データならではの利点があります。処理しているのは 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に対して新しい変換処理を頼むとき、もっとも適切な進め方はどれでしょう?
- 時間を節約するため、最初から12万行すべてに処理を実行させる
- まず1,000行程度のサンプルで処理を試し、結果を確認してOKを出してから全件に適用させる
- 12万行は多すぎるので、Claude Code には頼まず手作業で処理する
- 処理を2回実行させて、結果が同じなら正しいと判断する
解答を見る
正解: 2
大量データの鉄則は「まず小さなサンプルで試す」です。サンプルなら結果を目視で確認でき、処理の誤りに早く気づけます。同じ誤った処理は何度実行しても同じ誤った結果になるため、選択肢4では誤りを検出できません。
Q2. 36個のCSVを1つに結合する処理の検証として、もっとも適切なものはどれでしょう?
- 結合後のファイルが開けることだけ確認する
- 結合後のファイルサイズが大きければ成功と判断する
- 各ファイルの行数の合計と結合後の行数、さらに金額列の合計を前後で突き合わせる
- 結合後の先頭10行だけを目視して問題なければ完了とする
解答を見る
正解: 3
大量データは目視で全体を確認できないため、数字の突合が検証の柱になります。行数の収支で取りこぼしや重複を、合計値の照合で数値の破損を検出できます。先頭10行の目視(選択肢4)は補助にはなりますが、それだけでは途中のファイルの取りこぼしに気づけません。