e-Stat(政府統計の総合窓口)の統計データを Claude Code から対話的に検索・取得するスキルです。
「人口の推移を調べたい」「都道府県別のGDPはある?」のような自然な質問から出発し、数十万件の統計表を段階的に絞り込んで、必要なデータにたどり着けます。
あなた: 都道府県別の人口を最新で見たい
Claude: 「人口」で統計調査を検索します。
- 国勢調査 (00200521)
- 人口推計 (00200524)
- 住民基本台帳人口移動報告 (00200523)
どの調査が近いですか?
あなた: 1
Claude: 国勢調査の統計表を検索します。
- 男女別人口-全国,都道府県 (0003448773)
- 年齢(5歳階級),男女別人口-都道府県 (0003448774) ...
どれを選びますか?
あなた: 1
Claude: この統計表には以下の軸があります:
- 表章項目(tab): 人口, 人口性比
- 時間軸(time): 2015年, 2020年
- 地域(area): 全国, 北海道, 青森県, ... (47都道府県)
- 男女(cat01): 総数, 男, 女
全都道府県 × 2020年 × 総数 × 人口 で取得してよいですか?
あなた: はい
Claude:
| 都道府県 | 人口 |
|---|---|
| 北海道 | 5,224,614 |
| 青森県 | 1,237,984 |
| ... | ... |
出典:令和2年国勢調査(総務省統計局)e-Stat 統計表ID: 0003448773
e-Stat には数十万の統計表があり、1つの表にも複数の分類軸(男女別、年齢階級、地域、時系列…)が存在します。軸の意味は表ごとに異なるため、一発で正しいデータを取るのは困難です。
このスキルは 統計調査 → 統計表 → 軸の確認 → データ取得 の4段階で対話しながら進むことで、意図しないデータを掴むリスクを最小化します。
- Claude Code
- Python 3.9+
- e-Stat API のアプリケーション ID(利用登録はこちら)
git clone https://github.com/ichiromurata/estat-navigation.gitプロジェクト単位で使う場合:
cp -r estat-navigation .claude/skills/estat-navigation全プロジェクト共通で使う場合:
cp -r estat-navigation ~/.claude/skills/estat-navigationexport ESTAT_APP_ID="your-application-id"~/.bashrc や ~/.zshrc に追加しておくと永続化できます。
Claude Code を起動して、以下のように話しかけてみてください。
都道府県別の人口を調べて
または /estat-navigation で直接起動することもできます。
estat-navigation/
├── SKILL.md # スキル本体(Claudeへの指示)
├── scripts/
│ └── estat_client.py # e-Stat API クライアント
└── references/
├── statsfield.csv # 統計分野コード一覧
└── statscode.csv # 府省コード一覧
SKILL.md が Claude への指示書です。4つのフェーズ(統計調査の特定 → 統計表の特定 → メタ情報の確認 → データ取得)を定義し、各フェーズでユーザーの確認を待ってから次へ進むよう構成しています。
estat_client.py は e-Stat API の呼び出しとレスポンス整形を担うCLIツールです。4つのサブコマンドを持ちます:
| サブコマンド | 用途 | 対応する e-Stat API |
|---|---|---|
| surveys | 統計調査名の一覧取得 | getStatsList (statsNameList=Y) |
| tables | 統計表の検索 | getStatsList |
| metadata | 統計表のメタ情報取得 | getMetaInfo |
| data | 統計データ取得 | getStatsData |
e-Stat API の JSON レスポンスは @ 付き属性やネスト構造が独特なため、スクリプト側で正規化し、Claude が解釈しやすいフラットな構造に変換しています。
ユーザーの質問
│
▼
Phase 1: surveys ── 統計調査を検索 ── ユーザーが選択
│
▼
Phase 2: tables ─── 統計表を検索 ──── ユーザーが選択
│
▼
Phase 3: metadata ─ 軸(行・列)を確認 ─ ユーザーが承認
│
▼
Phase 4: data ───── データ取得・提示
ユーザーが調査名まで明示している場合(例:「国勢調査の…」)、Phase 1 を省略して Phase 2 から開始します。
スキルを介さず直接使うこともできます。
# 統計調査の検索
python scripts/estat_client.py surveys --search-word 人口
# 統計表の検索(国勢調査に絞り込み)
python scripts/estat_client.py tables --stats-code 00200521 --survey-years 2020
# メタ情報の確認
python scripts/estat_client.py metadata 0003445078
# データ取得(北海道・青森の2020年人口)
python scripts/estat_client.py data 0003445078 \
--cd-tab "2020_01" \
--cd-time "2020000000" \
--cd-area "01000,02000" \
--cd-cat01 "0"estat_client.py は独立したCLIツールなので、他のスキルやスクリプトから直接呼び出せます。
SKILL.md の「フェーズ遷移の原則」セクションを編集すれば、確認ステップを減らしたり自動推測を許可したりできます。ただし e-Stat の統計表は構造が多様なため、確認を省略すると意図しないデータを取得するリスクが高まります。
e-Stat は日本の公的統計のポータルサイトです。各府省が実施する統計調査の結果を、API経由で取得できます。
API の利用にはアプリケーション ID の取得(無料)が必要です。詳細な API 仕様はこちらを参照してください。