マガジン

ChatGPTにCSVを渡して分析させる前に:渡し方と結果を疑う確認点

AIを使いこなす

Claudeで執筆し、GPTで自動校閲・修正しています。

升目に並べた木片を手で数え、元の件数と照合する様子
記事の内容をもとに制作したAI生成イメージです。実際の製品画面や検証結果の写真ではありません。

結論から言うと、CSVを渡す前にやることは「そのデータを外部サービスに出してよいか」の確認と、「何を知りたいか」を依頼文に書くことです。受け取った後は、数字をそのまま信じず、行数・除外した行・計算方法・グラフの軸の4点を自分で突き合わせてください。ChatGPTは集計や可視化を速くやってくれますが、結果の責任は渡した側に残ります。 OpenAIのヘルプでは、一部のデータ分析タスクではPythonを実行して計算や変換、統計処理を行うと説明されています。同じページに、生成されたコード、出力、前提を確認してから結果に頼るよう書かれています(Data analysis with ChatGPT)。この記事は、その「確認」を具体的な手順にしたものです。 なお、仕様の記述は2026年10月29日に自動校閲で確認した英語ヘルプに基づきます。上限や対応ファイルはプランやモデル、ワークスペース設定で変わるため、実際の画面で確かめてください。

この記事の目次
  1. 手順1:渡してよいデータか確認する
  2. 手順2:依頼文の型で渡す
  3. 手順3:返答を点検する
  4. 手順4:説明用の例で確認の感覚をつかむ
  5. 手順5:やり取りを残して再現できるようにする
  6. まとめて使うための短縮版

手順1:渡してよいデータか確認する

まず中身の確認です。次の表で、一つでも「はい」があれば、そのまま渡さず加工するか見送ります。

  • 氏名・住所・電話番号・メールアドレス・会員IDなど、個人を特定できる列がある、「はい」の場合の対応:その列を削除する。分析に必要なら、連番などに置き換え、他の列や照合できる情報から個人が分からないか再確認する
  • 他の列と組み合わせると個人が分かる(細かい地域+年齢+購入日など)、「はい」の場合の対応:粒度を粗くする(市区町村を地方に、日付を月に)
  • 取引先名や社外秘の数値を含み、社内規則で外部サービスへの入力が禁止または未確認、「はい」の場合の対応:規則を確認するまで渡さない。説明用の架空データで代用する
  • 契約上、第三者への提供や委託が制限されている、「はい」の場合の対応:契約や担当部署を確認する
  • 医療・給与・成績など、本人にとって慎重に扱うべき情報である、「はい」の場合の対応:原則として渡さない。集計済みの表だけを使う

個人情報については、個人情報保護委員会が2023年(令和5年)6月2日に生成AIサービスの利用に関する注意喚起を公表しています(個人情報保護委員会:生成AIサービスの利用に関する注意喚起等)。業務で個人データを扱う場合の適法性は、この記事では判断できません。社内の担当者や専門家に確認してください。

学習利用をオフにしても「秘密が守られる」わけではない

ChatGPTの「Improve the model for everyone」は、個人向けのFree、Plus、Proでは初期状態でオンと説明されています。オフにすると、新しい会話がモデルの学習に使われなくなります。ただし保存済みの会話は消えません(Data controls in ChatGPT)。個人向けプランでは、学習利用をオフにしていても、評価ボタン(高評価・低評価)でフィードバックを送ると、その会話全体が学習に使われる場合があるとされています(How your data is used to improve model performance)。

つまり学習設定は「学習に使われるか」の話で、「機密情報を渡してよいか」とは別の問題です。機密情報を扱うなら、設定ではなく、データを置き換えるか、契約・社内ルールを確認するかで対処します。

形式の確認

データ分析のヘルプの推奨は、1行目に分かりやすい列名を置き、1行1レコードにすることです。無関係な表を同じシートに混ぜる、空行や空列でデータを分断する、必要な数値を画像で渡す、は避けるよう書かれています。CSVの目安サイズは約50MB(行の大きさで変わる)、Freeプランは1日3ファイルまでという記載もあります(Uploading files and audio to ChatGPT)。大きなファイルは、必要な列と期間に絞ってから渡すほうが、確認もしやすくなります。

手順2:依頼文の型で渡す

渡し方で品質が変わるのは、AIが「何を、どの範囲で、どの順番でやるか」を推測しなくて済むからです。次の型を、そのままコピーして括弧内を書き換えてください。

添付のCSVを分析してください。

【目的】(例:地域別の売上の違いを把握し、来月の販促の優先順位を考える材料にしたい)
【データの説明】
- 1行=1件の注文
- 列:注文日(YYYY-MM-DD)、地域、商品区分、数量、売上(円、税込)
- 期間:(2025-04-01〜2025-09-30)
- 欠損は空欄。返品は売上がマイナスで入っている
【進め方】
1. まず分析せず、行数、列名、各列の型、欠損数、重複行数だけを報告してください。
2. 私が確認して「OK」と返したら、次の分析に進みます。
3. 分析:(地域別・月別の売上合計と、前月比)
【出力形式】
- 結果は表で。使った列、除外した行数とその理由を必ず書く
- 実行したPythonコードを見せる
- 確かな点と、データだけでは言えない点を分けて書く
【お願い】
- 原因は断定せず、候補として挙げてください
- 推測で欠損値を補わないでください

この型のねらい

  • 「まず構造だけ報告」:読み込み時点のずれ(文字化け、列のずれ、日付が文字列のまま)を、分析結果が出る前に見つけられます。
  • 「除外した行数と理由」:AIは、変換できない行や欠損行を黙って落とすことがあります。件数を言わせると、元データとの差が見えます。
  • 「確かな点と言えない点を分ける」:相関を原因のように語る文章を抑えられます。

手順3:返答を点検する

返答が来たら、次の順で確認します。上から順にやると、致命的な誤りを早く拾えます。

点検チェックリスト

  1. 行数が合うか:報告された行数を、自分でExcelやスプレッドシートで数えた行数(ヘッダー除く)と比べる。ずれていれば、そこで止めて原因を聞く。
  2. 列の意味が合うか:売上が税込か税抜か、日付の形式、単位(円か千円か)が、渡した説明どおりに扱われているか。
  3. 除外・補完の記録があるか:落とした行、補った値、型変換で失敗した件数が書かれているか。書かれていなければ「除外した行数と理由を出してください」と追加で聞く。
  4. コードを読む:全部理解できなくても、次の箇所だけは見る。
  • 絞り込み条件(== や > の向き、期間の端)
  • 集計が合計か平均か中央値か
  • グループ化の列は何か
  1. 2〜3個の数字を手計算で再現する:全体合計と、ある地域・ある月の合計を、自分のスプレッドシートで出す。一致しなければ、AIの全結果を保留にする。
  2. グラフの軸と単位を見る:縦軸の開始位置、月の並び順、凡例と色の対応、単位の表記。画像は表の数値と照合する。
  3. 言い過ぎを削る:「〜が原因」「〜によって増えた」といった因果の言い方は、このデータだけで言えるかを自問する。期間が短い、比較対象がない、サンプルが偏るなら「候補の一つ」に直す。
  4. 反証を頼む:「この結論が間違っている可能性がある理由を、このデータで確認できる範囲で3つ挙げてください」と聞く。出てきた項目のうち、実際に確認できるものだけ確認する。

判断表:結果をどこまで使うか

  • 行数・合計が一致し、除外の説明も妥当、使い方:探索的な傾向把握としては使える。社外資料に載せる前にもう一度再計算する
  • 合計は一致するが、除外行の理由が曖昧、使い方:理由が確認できるまで保留。元データの該当行を見る
  • 手計算と数字が合わない、使い方:使わない。読み込み結果の報告からやり直す
  • コードが読めず、検証手段もない、使い方:意思決定には使わず、「見るべき箇所の候補」を得る目的にとどめる

手順4:説明用の例で確認の感覚をつかむ

次は説明用の例です。実際にChatGPTで実行した結果ではありません。

説明用のCSVに120行あり、AIが「有効な行は114行」と報告したとします。差の6行について、除外理由が書かれていなければ、手順3の1と3に当たります。「返品でマイナスの行を除いた」のか、「日付が空欄の行を除いた」のかで、売上合計はまったく違います。依頼文で「返品は売上がマイナスで入っている」と書いておいたのは、この差を防ぐためです。

こうした確認は、統計の用語を知らなくてもできます。必要なのは、元データの件数と合計を自分の手元に持っておくことです。

手順5:やり取りを残して再現できるようにする

最後に、後で説明できる状態にします。

  • 依頼文、AIが出したコード、結果の表を、元のCSVとあわせて保存する
  • 渡したCSVが加工後のものなら、どこを削除・置換したかを一行で書き残す
  • 保存したコードを同じCSVで再実行し、数字が一致するか確かめる。一致しても正しさの証明にはならないため、手順3の独立した再計算も行う

仕事で使う分析なら、この記録が「なぜその数字になったか」を後から説明する材料になります。

まとめて使うための短縮版

渡す前は、個人列を消す、機密を置き換える、1行1レコードに整える、目的と列の説明を書く、の4つ。受け取った後は、行数、除外行、コードの絞り込み条件、手計算の突き合わせ、グラフの軸の5つ。この9項目を満たしてから、結果を報告や判断に使ってください。

出典・参考資料