はじめに
自分は人事給与ERP製品を開発する会社で、統計帳票の開発を担当しまいます。
統計帳票というのは、毎月勤労統計表や賃金台帳、公務員調査表など、全国調査にあってはその全国的変動を毎月、毎年明らかにすることを、地方調査にあってはその都道府県別の変動を毎月、毎年明らかにすることを目的とした調査です。
日々大量なデータを見る私は、これらのデータを分析することで、社員の退職や昇給などの原因がわかるではないかを気づきました。
ビッグデータ活用が近年話題になり、国や民間企業等が提供している主要な統計データを分析し、提供しているWebサービスもあります。
https://dashboard.e-stat.go.jp/
ただ、分析した内容と画像がややシンプルであり、データをもっと深堀りできるではないかを考えています。
もし、これらのデータを手には入れたら。。。と思いつつ、e-State APIがあることに気づきました。
e-State APIというのは、政府統計の総合窓口(e-Stat)で提供している統計データを機械判読可能な形式で取得できるAPI機能です。今回e-StateのAPIを使って簡単なデータ分析をやってみます。
https://www.e-stat.go.jp/api/
e-stateのAPIの使い方
基本以下の流れです。
アプリケーションID取得→統計対象データの選択とAPIクエリー取得
アプリケーションID取得
API経由でデータを取得する際に、アプリケーションIDというパラメータを指定しないとデータが取得できません。ですのでユーザー登録して、マイページで発行ボタンをクリックすると、アプリケーションIDを取得します。
https://www.e-stat.go.jp/mypage/user/preregister
アプリケーションIDは以下のようなハッシュコードです。
"appId" : "6tt320sfjagagiadkghijgjngdkgoda"
統計対象データの選択とAPIクエリー取得
指定した統計表ID又はデータセットIDに対応する統計データ(数値データ)を取得します。
e-State APIから提供できるデータは以下のようになります。国勢調査や人口推計、家計調査などいろいろあります!
https://www.e-stat.go.jp/stat-search/database?page=1&layout=normal
統計したい調査を開いて、APIボタンをクリックします。
APIボタンをクリックすると、データ取得の時に使われるAPIリクエストのURLが表示されます。
クエリーは三つの形式があり、今回JSON形式でデータを取得します。
JSONを解析
Pythonのrequests.get(url, params)
でデータを取得します。
url
はAPIクエリーの一番左側から?
までのurlです。
params
に、ユーザー登録時にもらったアプリケーションIDとAPIクエリーに書いたstatsDataId
を記入します。
statsDataId
は統計表IDです、異なる統計表のIDは違います。
今回JSON形式のクエリーをもらいましたので、json.loads()
でデータを取得します。
簡単ですね!!
numpyでデータを分析する
今回の毎月勤労統計表のデータは8個統計項目がありますので、それぞれ取得して2年度の平均値をnumpyで計算します。
matplotlibで可視化する
最後に
ふたんデータ分析をしたく、データがない場合、e-State APIを活用すれば、いろいろなデータ分析ができ、楽しいですね。