はじめに
e-StatのデータにPowerQueryで直接アクセスしてデータを取得する方法を試してみた。
e-Statとは
日本の政府統計に関する情報のワンストップサービスを実現することを目指した政府統計ポータルサイトです。これまで各府省等が独自に運用するWebサイトに散在していた統計関係情報を本サイトに集約、社会の情報基盤たる統計結果を誰でも利用しやすいかたちで提供することを目指し、各府省等が登録した統計表ファイル、統計データ、公表予定、新着情報、調査票項目情報、統計分類等の各種統計関係情報を提供していきます。
様々なデータをサイト上で表示したり、CSV、XLSX形式でダウンロードしたりすることができる。けど今回はダウンロードはせずにPowerQueryのWEBコネクタで直接つないでみる。
e-StatのAPI機能を利用する準備
e-Stat API機能利用ガイドに従って、マイページ > API機能(アプリケーションID発行)から「アプリケーションID」を発行する。
名称と概要は自分で適当に決めて入力。URLはガイドのとおり「http://localhost/
」とした。発行ボタンを押すとappIdが表示される。
読み込むデータのAPIリクエストURLを取得
今回は「社会・人口統計体系 都道府県データ 基礎データ」の中の「B4106_降水日数(年間)」を読み込むことにする。
https://www.e-stat.go.jp/dbview?sid=0000010102
上記のページで表示項目選択メニューから「B4106_降水日数(年間)」を選んで表示を絞り込んだらAPIボタンを押して「API リクエスト URL」を取得する。
このURL内の「appId=」の後にアプリケーションIDを挿入して使用する。
http://api.e-stat.go.jp/rest/2.1/app/getStatsData?cdCat01=B4106&appId=<アプリケーションID>&lang=J&statsDataId=0000010102&metaGetFlg=Y&cntGetFlg=N§ionHeaderFlg=1
PowerQueryで読み込む
webコネクタで先ほどのURL(アプリケーションIDを挿入したもの)を入力。
「CLASS_OBJ」と「VALUE」にチェックを入れて「編集」を押す。
VALUEの中身はこんな感じ。
Element:Text 降水日数、 Attribute:area 地域名、 Attribute:time 調査年
のデータを利用する。その他は今回は使わないので気にしない。
地域を示す「AREA」が数値コードで書かれていてどこだかわかりにくい。「CLASS_OBJ」に地域名とコードとの対応が書かれているのでのぞいてみる。
「CLASS_OBJ」の「CLASS」列を展開する。「Attribute:code」「Attribute:name」にチェックを入れてOKを押す。
あとは「VALUE」の「AREA」と「CLASS_OBJ」の「CLASS.AttributeCode」とでマージしてごにょごにょすればこんな感じになって・・・
PowerBiで仕上げるとこうなる。
日本海側が降水日数が多いことが一目瞭然!
参考
政府統計の総合窓口(e-Stat)のAPIを使ってみよう
https://qiita.com/mima_ita/items/44f358dc1bc4000d365d