ふくふくHukuhuku Inc.
EP.01Open Data 8分公開: 2026-05-10

open-data(政府統計)を社内データに重ねるだけで、商圏分析が変わる

9万種類の政府統計が無料API。最初の1歩は「自社顧客の郵便番号 × 国勢調査」を重ねる、たった3ステップ。

#e-Stat#商圏分析#国勢調査
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

「うちの顧客はどんな人が多いんだろう?」を、自社データだけで答えるのは難しい。年齢・世帯構成・住んでいる地域の特性まで踏み込みたい。そこで使えるのが、政府が無料公開している e-Stat です。

e-Stat とは

総務省統計局が運営する、日本で最も網羅的な政府統計のポータル。約9万種類の統計データを で取得できます。利用無料、API キー登録のみ。商用利用も可能。

主要統計粒度用途
国勢調査町丁字単位人口・世帯・年齢構成
家計調査都道府県単位支出構成・消費傾向
賃金構造基本統計業界×年代給与水準・職種分析
商業統計市区町村単位店舗数・売上規模
事業所統計町丁字単位B2B 商圏分析

最初の3ステップ

  1. 1API キー取得:https://www.e-stat.go.jp/api/ で無料登録(即時発行)
  2. 2ターゲット統計を選ぶ:はじめは「国勢調査 × 町丁字」が万能
  3. 3自社データの郵便番号と突合:ZIP → 町丁字コード変換テーブル(国土交通省提供)でJOIN

実装: × e-Stat

API 呼び出し(基本)
Python
import requestsimport pandas as pd
ESTAT_KEY = "YOUR_API_KEY"def fetch_estat(stats_id: str, area_codes: list):    url = "https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData"    res = requests.get(url, params={        "appId": ESTAT_KEY,        "statsDataId": stats_id,  # 国勢調査の統計ID        "cdArea": ",".join(area_codes),    })    return res.json()

活用例:顧客の年齢構成を可視化

自社CRM顧客×郵便番号10万行e-Stat 国勢調査町丁字×年齢×世帯無料API商圏ダッシュボード「30-40代多い」経営層に響く自社データだけでは見えない地域特性が分かる
顧客住所 × e-Stat 重ね合わせのイメージ

に丸投げで完成させる

prompt:e-Stat 商圏分析パイプライン
自社CRMの顧客データに、e-Stat の国勢調査データを重ねた商圏分析パイプラインを作ってください。

## 入力
- BigQuery: `crm.customers`(カラム: customer_id, postal_code, signup_date, ltv)
- e-Stat API: 統計ID 0003448237(令和2年国勢調査・町丁字別年齢階級別人口)

## 必要な処理
1. 郵便番号 → 町丁字コード変換(japan-zip-codes.csv 利用)
2. e-Stat API から町丁字単位の年齢構成を取得(5年に1回更新)
3. 顧客 × 居住地域の年齢構成・世帯属性を JOIN
4. 「自社顧客の年齢構成 vs その地域の人口比」を計算
5. {{looker-studio|*}} 用のテーブル `mart.customer_demographics` を生成

## 出力
- {{dbt|*}} モデル
- API 取得 Python ジョブ
- ダッシュボード設計案
想定される実行結果(例示)
## 商圏分析パイプライン 生成完了

### 生成ファイル
- `jobs/fetch_estat_population.py` (180行) - API 取得・キャッシュ
- `models/staging/stg_estat__population.sql`
- `models/intermediate/int_customer_with_area.sql`
- `models/marts/finance/mart_customer_demographics.sql`
- `docs/dashboard_spec.md` - Looker Studio 構成案

### 生成されたインサイト例
```
自社顧客の年齢構成 vs 全国平均
- 20-29歳: 自社 28% / 全国 16% → +12pt(強い)
- 30-39歳: 自社 35% / 全国 14% → +21pt(最強)
- 40-49歳: 自社 22% / 全国 16% → +6pt
- 50歳以上: 自社 15% / 全国 54% → -39pt(弱い)

→ 50代以上の獲得が課題。マーケ施策見直しの余地。
```

### 次のステップ提案
1. 顧客 {{ltv|*}} × 地域属性で「儲かる地域」を特定
2. 未進出エリアの「同じ属性の人口」を計算→出店候補
3. 競合店舗データ(商業統計)で空白マーケットを発見

PR #145 を生成しました。

データ取得の留意点(2026年5月時点)

API利用の前提

application_id(appId)の取得が必須です。e-Stat のユーザ登録 → マイページから新規アプリケーションを発行 → リクエスト時に `appId=XXXXX` をクエリパラメータに付与します。利用前にユーザ登録(無料)を済ませてください。

  • 現行APIバージョン: v3.0(2019年7月26日以降の標準)。エンドポイント `https://api.e-stat.go.jp/rest/3.0/app/...`。v1.0/v2.0 はレガシー扱い、新規は v3.0 で実装。
  • 利用料金: 無料。
  • 商用利用: OK(公式の利用規約上、明示的に許可)。
  • クレジット表示: アプリケーション公開時には「出典:政府統計の総合窓口(e-Stat)」相当のクレジット表示を推奨。
  • 編集・加工: データを編集・加工した場合は、その旨を明示する必要あり(規約)。
  • 著作権: 数値データ・簡単な表/グラフは著作権の対象外。
  • 外部DB連携部分: e-Stat 経由で外部データベースを呼ぶケース(一部統計)は、各データ提供元の利用条件にも従う必要あり。
  • 1リクエスト件数上限: API仕様書(v3.0)によれば `limit` パラメータで最大件数を指定可能。デフォルト・上限値の詳細は公式仕様書PDFで確認してください(実装前に1度通読推奨)。
  • レート制限: 公開仕様には明示的な数値制限の記載なし。ただし大量連続アクセスは自主的に間隔を空ける(1秒以上推奨)など、礼儀として配慮を。
  • 仕様変更リスク: 国は予告なくデータ・APIを変更・削除する可能性あり。本番運用ではエラーハンドリング+リトライ+アラートを必須に。
公式リソース

API仕様書: https://www.e-stat.go.jp/api/api-info/api-spec / 利用ガイド: https://www.e-stat.go.jp/api/api-info/api-guide / 利用規約: https://www.e-stat.go.jp/terms-of-use ─ 制限値の最新情報は実装前に必ず一次ソースで確認。

次回予告

EP.02 では、(地域経済分析)で「うちの顧客はどこから来てるか」を1日で可視化する手法をお届けします。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp