見出し画像

#26 RESAS(地域経済分析システム)APIでデータを取得するPythonコード

RESAS(リーサス)は、内閣府が運用している、産業構造や人口動態、人の流れなどに関する官民のいわゆるビッグデータを集約し、可視化を試みるシステム。無料。

左上のプルダウンからいろいろデータが選べる。

画像1

新潟県(2015年)の地域循環図なんてのも簡単

画像2

岐阜県高山市(2019年)の宿泊者の属性のグラフ

画像3

これらはエクセルでダウンロードできます。

これでもいいのですが、APIがあるのでこれでデータ取得してクラウド上で分析してみましょう。google colaboratory のためのpythonコードを紹介します。

事前に登録してAPIキーを取得しておく必要があります。トップページの左下にあります。

画像4

api_key = "×××(キーを入れる)"

api_key = "×××(キーを入れる)"
​!apt-get -y install fonts-ipafont-gothic
​!pip install requests
import requests
import json

req = requests.get(
   "https://opendata.resas-portal.go.jp/api/v1/prefectures",
   headers={
       "Content-Type": "application/json",
       "X-API-KEY": api_key
   }
)

data = json.loads(req._content.decode('UTF-8'))
data

これで県一覧が出ました。山梨県は19ということで、その数字を選んでみます。次に市町村一覧を得ます。

import requests
import json

req = requests.get(
   "https://opendata.resas-portal.go.jp/api/v1/cities?prefCode=19",
   headers={
       "Content-Type": "application/json",
       "X-API-KEY": api_key
   }
)

data = json.loads(req._content.decode('UTF-8'))
data

笛吹市は19211らしいです。
山梨県の開業率をGETしてみます

import requests
import json

req = requests.get(
   "https://opendata.resas-portal.go.jp/api/v1/municipality/foundation/perYear?prefCode=19&cityCode=-",
   headers={
       "Content-Type": "application/json",
       "X-API-KEY": api_key
   }
)

data = json.loads(req._content.decode('UTF-8'))
data

笛吹市の開業率です。

import requests
import json

req = requests.get(
   "https://opendata.resas-portal.go.jp/api/v1/municipality/foundation/perYear?prefCode=19&cityCode=19211",
   headers={
       "Content-Type": "application/json",
       "X-API-KEY": api_key
   }
)

data = json.loads(req._content.decode('UTF-8'))
data

表にしてアウトプットします

import pandas as pd

req = requests.get(
   "https://opendata.resas-portal.go.jp/api/v1/municipality/foundation/perYear?prefCode=19&cityCode=19211",
   headers={
       "Content-Type": "application/json",
       "X-API-KEY": api_key
   }
)

data = json.loads(req._content.decode('UTF-8'))
df = pd.json_normalize(data['result']['data'])
df = df.set_index(["year"])
df = df.rename(columns={"value": "笛吹市"})
df

笛吹市
year
2006~2009年 2.37
2009~2012年 0.87
2012~2014年 4.39
2014~2016年 3.80

グラフにしてみます

df.plot()

画像5

この記事が気に入ったらサポートをしてみませんか?