Skip to content

ichiromurata/e-StatNavigation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

estat-navigation

e-Stat(政府統計の総合窓口)の統計データを Claude Code から対話的に検索・取得するスキルです。

「人口の推移を調べたい」「都道府県別のGDPはある?」のような自然な質問から出発し、数十万件の統計表を段階的に絞り込んで、必要なデータにたどり着けます。

デモ

あなた: 都道府県別の人口を最新で見たい

Claude: 「人口」で統計調査を検索します。

  1. 国勢調査 (00200521)
  2. 人口推計 (00200524)
  3. 住民基本台帳人口移動報告 (00200523)

どの調査が近いですか?

あなた: 1

Claude: 国勢調査の統計表を検索します。

  1. 男女別人口-全国,都道府県 (0003448773)
  2. 年齢(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段階で対話しながら進むことで、意図しないデータを掴むリスクを最小化します。

必要なもの

セットアップ

1. リポジトリをクローン

git clone https://github.com/ichiromurata/estat-navigation.git

2. スキルを配置

プロジェクト単位で使う場合:

cp -r estat-navigation .claude/skills/estat-navigation

全プロジェクト共通で使う場合:

cp -r estat-navigation ~/.claude/skills/estat-navigation

3. アプリケーション ID を設定

export ESTAT_APP_ID="your-application-id"

~/.bashrc や ~/.zshrc に追加しておくと永続化できます。

4. 動作確認

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 から開始します。

estat_client.py の使い方

スキルを介さず直接使うこともできます。

# 統計調査の検索
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 について

e-Stat は日本の公的統計のポータルサイトです。各府省が実施する統計調査の結果を、API経由で取得できます。

API の利用にはアプリケーション ID の取得(無料)が必要です。詳細な API 仕様はこちらを参照してください。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages