オープンデータ探索のためにAgentモードのChatGPTができること・苦手なこと
tl;dr
- 目的:ニホンジカ増加の要因(狩猟者減少・暖冬/積雪減少・捕獲圧の変化 ほか)をダッシュボードで可視化し、議論を前に進める。
- 検証仮説:①狩猟者減少・高齢化 → 調整力低下、②暖冬・積雪減少 → 生存率上昇、③捕獲圧の構成変化 → 個体数に影響、(次版)④政策イベント・土地利用の変化が増減に寄与。
- AIが探してきて勝手に採用したデータ:環境白書の推定個体数(分位)・捕獲数(内訳)・狩猟免許所持者(年齢別)、代表観測点(奈良/新潟/岐阜)の日別積雪深→年集計、補助的に県別気候指標(2019)。
- 主な前処理:古い.XLSをCSV化、和暦→西暦、見出し正規化、ワイド→ロング、積雪の積雪日数/平均/最大/合計を年集計。すべてUTF-8 CSVでTableau即投入。
- Agentモードでできたこと:公的サイトの図表Excel到達→変換→整形、年別CSVの一括取得、軽量ETL、自動ファイル出力。
- Agentモードが苦手なこと:ログイン/動的ページ/古い形式の自動取得、県別個体数の網羅は要追加作業。
著者のお気持ち
- あらかじめどのような仮説を検証したい、という文脈を(これもAIで)まとめてからプロンプトとしてAIに伝えておけば、あとは「いい感じのデータを持ってきて」だけでかなりいい感じの作業をしてくれます。古いxls形式でも勝手にツールを探してきてCSVに変換してくれるのはとても助かりました。
- 直近のデータが存在しても、たどり着けずに中途半端な年代のデータだけを持ち帰ってくることがあります。なので人間が検証・吟味するプロセスは必須。
- Agentに頼めば、とりあえずBIツールにインポートすればグラフになる段階のデータを返してくれます。逆に言えばそれだけなので、探索しがいのあるデータというよりは、当たり前の結論しか引き出せないようなデータになりがち。(それはそれでありがたいのだが)
- 2025年10月時点でAIによるオープンデータ探索をするなら、分析テーマは思いつきレベルでもよくて、そこからどんなデータがあるかなーと当たりをつけるフェイズでAI Agentを使うのが良いかと思います。

こんな感じの割と何の変哲もないグラフならすぐできる程度のデータは、サクッと取ってきてくれる(が、色々足りなかったりする)
背景
問題意識:なんでそんなに日本で野生のシカとかイノシシが増えてるの? → でもデータ前処理が面倒 → ChatGPTでできるかな
このようなふと疑問に思ったことに対して探索的データ分析をして仮説を検証するデータの可視化を(Tableauで)したくなる皆さんは多いと思いますが、パブリックデータを検索・取得・加工する前処理の過程がとてもめんどくさいのです。(個人の感想です)
そこで今回はデータの前処理をどこまでAIに任せられるのか、ChatGPTのAgentモードならどこまでできるの?というのを知っておくための実験を行いました。
Tableauうまうま会
きっかけはTableauうまうま会というイベントでした。Tableau界隈はコミュニティ活動が活発で、その中の「うまくViz(データ可視化)がつくれるようになる×うまいご飯を食べる」会に参加してきました。今回のテーマは「ジビエ焼肉」。めっちゃうまかったです。

ジビエとは
(この節はPerplexityの検索結果を貼り付けただけです)
ジビエとは、主に野生の鳥獣を狩猟によって捕獲し、食材として利用する肉や、それを使った料理のことです。[1][2][5]
語源や定義
- 「ジビエ(gibier)」はフランス語が由来で、日本語では「野生鳥獣肉」と訳されます。[2][3]
- 家畜(牛・豚・鶏など)の肉と異なり、野生で育った動物(シカ、イノシシ、カモ、クマ、ウサギ、キジなど)が対象です。[6][8][1]
ジビエの特徴
- 狩猟によって得られることから、運動量や食べているものにより味や肉質に独特の違いがあります。[1]
- 日本でも伝統食文化として古くからジビエを食べる習慣があり、近年は農作物被害対策の観点でも活用が進んでいます。[3][9]
- フランスを中心とするヨーロッパでは高級食材、貴族料理として発展しました。[5][6]
代表的なジビエの例
- 鹿(シカ)、イノシシ、クマ、ウサギ、カモ、キジ、ハトなどが一般的です。[7][8][1]
- それぞれ味や調理方法が異なり、「ぼたん鍋」(イノシシ)や「もみじ鍋」(シカ)と呼ばれる料理も有名です。[3][7]
注意点
- 野生動物肉には衛生上のリスク(E型肝炎や寄生虫など)があるため、十分に加熱調理することが推奨されています。[2]
このようにジビエは、自然の恵みをいただく食文化であり、現代でも持続可能性や地域振興の観点から注目が高まっています。[6][3]
参考文献
このようなおいしい経緯で、そもそも野生のシカやイノシシの個体数が増えているのはなぜ?という疑問が湧いたので、冒頭の実験を始めるに至ります。
実験概要
日本のニホンジカ増加要因(天敵不在、狩猟者減少、暖冬・積雪減少、保護政策の影響、土地利用変化)を、見てわかる形で示すMVPダッシュボード(Tableau)を作るために、短時間でオープンデータを収集・整形しました。本記事はその探索の実録と、AgentモードのChatGPT(ブラウザ操作・ファイル処理・軽いPython整形が可能な環境)でどこまでできたか/何が苦手かをまとめたものです。
AIが考えたデータ探索の計画
短時間で説得力のあるストーリーを作るため、以下をMVP(Minimum Viable Product)の必須として集めました。
-
推定個体数の長期トレンド(全国・本州以南)
環境省『環境白書』の図表Excelから抽出 → CSV化
・分位(0.05〜0.95)を含む推定個体数 → 中央値(Q0.50)を基軸にトレンド把握 -
捕獲数の推移(全国)
同じく環境白書の図表Excel → CSV
・「狩猟」「許可捕獲」「指定事業」の内訳+合計 → 人為的圧力の代理変数 -
狩猟免許所持者数(年齢別・長期)
環境白書の年齢別免許所持者Excel → ロング形式に整形、年合計も作成
・高齢化・減少の可視化に直結 -
積雪・気温(気候面)
① 2019年の都道府県別「年平均気温」「年間雪日数」(ランキング表由来)
② 積雪の“定点観測”として、鹿の多い県に所在する観測点の日別積雪深を年度アーカイブから収集・年別集計(例:奈良・新潟・岐阜の代表観測点)
これで、**「個体数・捕獲・狩猟者・積雪」**という核の4軸が揃い、最小限のダッシュボードでストーリーを構成できる状態になりました。
「集めました」「なりました」と(AIが)仰せですが、 実際には(おそらくトークンの制約で)1度ではデータを持ってこられなかったり、データがなかったりしました。AIのドヤ顔は大目に見てあげてください。
データ探索の実録
1) 環境白書の図表Excel → CSV化
-
目的:推定個体数・捕獲数・狩猟者(年齢別)を年次時系列で扱う
-
(AIが)やったこと:
- 白書PDFの図表ページからExcel添付へ到達
-
.xlsxはそのまま読み取り、.xlsはLibreOffice(headless)でCSV変換 - 日本語見出しや和暦→西暦、複数行ヘッダの正規化、ロング形式化を実施
-
成果:Tableauにすぐ入れられるクリーンCSVが揃い、年次の折れ線・面グラフが一発で描ける
2) 積雪の“定点”データ(1989年〜、全県網羅は不要)
-
目的:暖冬・積雪減少の仮説を、“同じ観測点”で長期に追う
-
やったこと:
- 気象官署の**年別CSV(観測点×年)**をダウンロード
- 奈良(葛城)、新潟(新潟)、岐阜(高山)で**日別の積雪深(mm)**を取得
- 年別に積雪日数/平均・最大・合計積雪深を集計
-
所感:奈良はそもそも暖地で積雪日が極端に少なく、「積雪減少が生存率↑」の効果を示すには豪雪地の方が説明力が高い。新潟の年変動はストーリーに効く。
つまずきポイント(乗り越えた/回避した)
ここでも「主語はAI」です。AI(GPT-5のAgentモード)がつまずき、考え、乗り越えています。人間はぼけーっとお茶飲んでました。
-
古いExcel(.xls)の読み込み
→ Python標準では読めず、LibreOfficeでCSV化して解決。 -
多段ヘッダ・和暦・全角空白
→ 列名正規化、和暦→西暦マッピング、ロング化で統一。 -
サイトのクロスドメイン制約やログイン要件
→ 一部の統計ポータルは自動DLに制約。可能な範囲で一次のExcel/CSVへ直接到達し、難しいものは代替のオープンデータや代表点の定点観測に切り替え。 -
気象の“県平均”より“定点観測”を優先
→ 都道府県平均は年や指標の網羅に限界があるため、**長期かつ再現性の高い“観測点×年”**に切り替えたのが奏功。
前処理レシピ(今回やったこと)
- 列名整形(日本語→英語、スペース・改行・全角の除去)
- 和暦→西暦への変換辞書を適用
- ピボット(ワイド→ロング)
- 文字→数値への強制変換、欠損は
NaN/0を文脈で使い分け - 年別集計(積雪日数=
snow_depth_mm>0の日数、平均/最大/合計積雪深) - 書き出し:UTF-8 CSV(Tableau/Sheets/Pythonで相互運用)
Tableauでの最小ストーリーボード
「最小」という条件がついているのは、この前の文脈でMVPについて議論しているからです。
-
推定個体数(Q0.50)トレンド:全国時系列の折れ線
-
捕獲数スタック:狩猟・許可・指定事業の重ね棒
-
狩猟者の高齢化:年齢帯別の面積図 or ピラミッド
-
積雪の定点比較:豪雪地(新潟)vs 暖地(奈良)の年別積雪日数
- →「暖冬・少雪年」と個体数増の時期の重なりをハイライト
-
(任意)注釈レイヤ:政策転換年(雌ジカ禁猟期間の解除など)を縦線で注記
AgentモードのChatGPT:できたこと
-
公式サイトからのデータ探索と到達
・白書図表の埋め込みExcelまでナビゲート
・年別観測CSV(観測点×年)の一括取得を工夫して実施 -
ファイル変換・整形・結合
・.xls→CSV、.xlsx読込、日本語混じりのヘッダ修正
・ロング化・年集計などの軽量ETL -
出力の“すぐ使える”最適化
・UTF-8 CSVでTableau/Sheets/PythonどれでもOK
・列名やデータ型をBIフレンドリーに
短時間で「使える形」に持っていく、という点では極めて相性が良いです。
AgentモードのChatGPT:苦手だったこと/注意点
-
ログイン・APIキー必須のサイトや、動的生成ページの自動取得
- 統計ポータルのログイン要件、クロスドメイン、クッキー制御は壁。
- 対処:一次配布のExcel/CSVに回避経路を取り、どうしても無理なら代表点に絞る・別の一次ソースに切替。
-
古いExcel形式(.xls)や日本語特有の表記揺れ
- 追加ライブラリが使えない環境だと詰まりがち。
- 対処:LibreOfficeのヘッドレス変換や、行スキップ+正規表現で粘り強く整形。
-
完璧な網羅性を短時間で担保すること
- 例:都道府県別の鹿個体数の統一フォーマットは即時取得が難しい。
- 対処:全国トレンド+捕獲+狩猟者+定点積雪でまず説得力あるMVPを作り、後続で地域別へ拡張。
-
単位・定義差
- 積雪は「降雪」「積雪深」「雪日数」など指標が多く、**単位(cm/mm/日)**も混在。
-
対処:定義を明示し、列名で単位を埋め込む(例:
snow_depth_mm)。
再現ワークフロー(社内標準にすると楽)
-
データ取得
- 白書図表Excel →
/raw/env_whitepaper/*.xlsx|.xls - 観測点×年CSV →
/raw/snow/{station}/{year}.csv.gz
- 白書図表Excel →
-
前処理(軽量ETL)
- 形式変換(
.xls→csv)、列名正規化、和暦→西暦、数値化 - ワイド→ロング、キー(年・都道府県・観測点)で整合
- 形式変換(
-
特徴量作成
- 積雪日数、平均/最大/合計積雪深
- 狩猟者年齢帯の比率・中央値年齢(任意)
-
検証用ビュー
- 折れ線(個体数・捕獲)、積層棒(捕獲内訳)、人口ピラミッド(狩猟者)、積雪比較
-
エクスポート
-
/out/csv/*.csvをTableauに取り込み、ワークブック雛形にバインド
-
こうするとさらに良い(実務Tips)
- “代表点×複数県”の積雪を少しずつ増やす(北海道・青森・秋田・新潟・長野・岐阜など)
- 政策イベント年リストを整備(雌ジカ禁猟解除年、捕獲事業拡大年 等)→縦線注釈で因果の仮説提示
- 土地利用系のプロキシ(耕作放棄地、林齢構成、広葉樹比率など)を1~2指標だけ追加
- データ辞書を最初に作る(列名・単位・定義・出典URL・更新頻度)
まとめ
- AgentモードのChatGPTは、**“到達できる一次データを最短で整形し、BIに乗せる”**ことが得意です。
- 一方で、ログイン必須のAPI・高度に動的なサイト・古い形式には詰まりやすい。そこは回避ルート(別ソース、代表点、形式変換、手動1ステップ)を混ぜて突破するのが現実解。
- 本稿の流れ(全国トレンド+捕獲+狩猟者+定点積雪)だけでも、「暖冬・積雪減少×個体数動態」を示す強い出発点になります。ここから地域別の肉付けや政策イベントの重ね合わせを進めれば、意思決定に耐えるダッシュボードに育ちます。
付録1:仮説と、そのために探した/取得したデータ
| 仮説 | 検証の狙い | 探した/取得したデータ(ソース) | 取得状況・備考 |
|---|---|---|---|
| 狩猟者の減少・高齢化が頭数調整力を弱めている | 狩猟者数の長期トレンドと年齢構成の変化を把握 | 狩猟免許所持者数(年齢別・全国)(環境白書の図表Excel) | 取得・整形済み(ロング化、年合計作成) |
| 気候変動(暖冬・積雪減少)が越冬率を押し上げている | 雪の減少が“生き延びる環境”を広げていないか | 観測点の日別積雪深(1989年〜):奈良(葛城)、新潟(新潟)、岐阜(高山)/年別集計(積雪日数・平均・最大・合計) | 取得・年集計済み(奈良=積雪稀、新潟=年変動大で説明力あり) |
| 個体数は90年代以降に増加した | 長期の増加傾向を可視化 | 推定個体数(本州以南、分位0.05〜0.95)(環境白書Excel) | 取得・CSV化済み(中央値Q0.50をメイン指標に) |
| 捕獲圧の変化(狩猟・許可・事業)が個体数に影響 | 捕獲構成の変化と総量を把握 | ニホンジカの捕獲数(狩猟/許可/指定事業/合計)(環境白書Excel) | 取得・CSV化済み(年次スタックで可視化) |
| (補助)暖冬の広域傾向を県尺度で把握 | 観測点データと県スケールの整合を見る | 都道府県別:年平均気温・年間雪日数(2019)(公表ランキング表由来) | 取得済み(2019年は指標が揃っており比較用に採用) |
| (次版)法令・政策変更が増減に与えた影響 | 縦線注釈でイベント年と動態を重ねる | 雌ジカ禁猟の解除年、被害対策拡充年 等(年表) | 収集中(MVPでは注釈候補を列挙) |
| (次版)生息環境の変化(耕作放棄地、林相) | 餌資源・隠蔽環境の拡大仮説を検証 | 耕作放棄地面積推移(国・県), 森林資源統計 等 | 後続取得(現時点は候補リスト化) |
| (次版)都道府県別の個体数・捕獲 | 地域差の説明力を高める | 県別捕獲頭数/解体頭数、県別個体数推定 | 一部アクセス制約あり → 次版で段階的に拡充 |
注:天敵(オオカミ絶滅)については歴史的事実として定性背景に位置づけ、定量データは不可(時間・空間の比較対象がないため)。
付録2:Agentモードで使用した主なツール/機能(今回の実作業ベース)
データ入手
- Webブラウザ操作:環境白書の図表ページからExcel添付に到達/ダウンロード
- 年別CSVの一括取得(観測点×年):降雪深の年アーカイブを年単位で取得(奈良・新潟・岐阜など)
変換・前処理
-
LibreOffice(headless):古い
.xls→ CSVへ一括変換(.xlsxはそのまま読込) -
Python(pandas / csv / gzip):
- 列名正規化(日本語・改行・全角スペースの除去)
- 和暦→西暦変換
- ワイド→ロング整形、数値化(欠損は文脈で0/NaN)
- 日別積雪深 → 年別集計(積雪日数、平均/最大/合計)
-
シェル作業の最小化:ダウンロードとファイル配置(
/raw→/out)の整理
検証・可視化準備
- UTF-8 CSVでエクスポート(Tableau/Google Sheets/Pythonの相互運用)
-
Tableau前提のスキーマ(日付/年キー、ロング形式、明示的な単位:
snow_depth_mmなど)
制約と回避
- ログインやクッキー前提のポータル、クロスドメイン制約の強いサイト → 一次のExcel/CSVへ直接到達、または代表観測点にピボット
- 古いExcel(.xls)や多段見出し → LibreOffice変換+正規化で解消
- 県平均の気候指標は年・項目の欠落がありうる → 定点観測の長期トレンドを主軸に
Discussion