より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

政府統計窓口e-Stats APIを使ってみる

政府統計窓口e-Statsには(Web)API形式で提供されています。

こちらを使って分析してみたいと思います。

APIの利用の前に

まず、APIを利用するにはユーザー登録が必要です。

www.e-stat.go.jp

ソーシャルアカウント連携も扱っており、FacebookTwitterでログインすることも可能です。

政府の統計窓口にしては、かなり現代的な出来ですね。

マイページからアプリケーションIDを取得します。

f:id:rimever:20190113224659p:plain

URLは取得APIのURLではなく、利用する側のアプリケーションです。

3つまでしか登録出来ないですが、十分でしょう。

URLは下記のような形

http://api.e-stat.go.jp/rest/2.1/app/getStatsData?appId={アプリケーションID}&lang=J&statsDataId=0001455691&metaGetFlg=Y&cntGetFlg=N&sectionHeaderFlg=1

f:id:rimever:20190113224914p:plain

いけましたね。JSONでも取得できるようです。

詳しくは、公式ページを参考にしてください。

IT業界ではない方からすると、これで何が嬉しいんだ?と思われるかもしれませんが、これならばアプリケーション内部の処理で扱えるためです。

japandasを用いて分析

下記のサイトによると、japandasでestatから取得できる様子。

sinhrks.hatenablog.com

試してみることにします。

インストール

まず、japandasをインストールします。

pip install japandas

japandas.readthedocs.io

japandasライブラリはestats APIの利用だけでなく、日本の祝日カレンダーも扱っているようです。

読み込み

import japandas as jpd

key = "your application id"
df = jpd.DataReader("0001455693", 'estat', appid=key)
df.head()

f:id:rimever:20190113230700p:plain

DataReader関数の0001455693って何?と思ったのですが、統計表IDのことを指します。

統計表のAPIのURLを取得してみると、下記のように表示され、statsDataIdのパラメータを指定すれば良いようです。

http://api.e-stat.go.jp/rest/2.1/app/getStatsData?appId=&lang=J&statsDataId=0001455691&metaGetFlg=Y&cntGetFlg=N§ionHeaderFlg=1

japandasライブラリでは8桁の数字となっているので、おそらく、ライブラリが開発された以降でe-Stats側のAPIの仕様に変更があったと考えられます

私のこの記事も数年後には、過去の資料になるので注意が必要です。

使ってみた感想

使ってみたのですが、一度csvでダウンロードして、整形した方が、私の目的には使いやすいかなと。