総務省eStatのHPでは、政府統計のデータを公開している。データ取得方法としては
-
eStat HPにアクセスする(or Webスクレイピング)
-
eStat APIを利用する
がある。ここは2の方法についての説明とツール置き場。
政府統計コードと統計表ID
eStatで公開されているデータは、「政府統計コード > 統計表ID > No.」 で識別される。たとえば、「平成27年国勢調査 世界測地系(250Mメッシュ) その1 人口等基本集計に関する事項 1次メッシュ M5035」という表は、「政府統計コード:00200521, 統計表ID:8003001633, No.:1」である。
データを取得したい政府統計の「政府統計コード」がわかれば、その中に含まれる統計表を条件検索できる。条件検索する際にも参照するIDをここに記す。
- 政府統計コード一覧(例:「国勢調査2015」= "00200521")
- 統計表の作成機関コード(例:「総務省」= "00200")
- 都道府県コード、市区町村コード(例:「北海道」="01"「札幌市」= "1002 ")
- 全国地方公共団体コード(例::「北海道札幌市」= "011002")
eStat API (version 3.0) の仕様については、API仕様書 (ver 3.0) を参照。
- Python >= 3.6.9
- Python Modules
- pandas==1.0.5
- requests==2.24.0
- tqdm==4.47.0
- urllib3==1.25.9
- xlrd==1.2.0
- xlwt==1.3.0
step 0:eStat API のアプリケーションIDを取得する。
eStats APIのトップページにアクセスして、「ユーザ登録・ログイン」から手続きを行う。氏名・メールアドレス・パスワードを登録すると、メールにてアプリケーションIDが送付される。アプリケーションIDがないとAPIコールできない。
step 1:HTTP GETをコールして、APIからレスポンス(データ)を受け取る。
APIの細かい使い方は、API仕様書 (ver 3.0) を参照。基本、以下2つのコールができればほとんど困ることはない。
-
統計情報取得(getStatsList)
- URLとパラメータを指定して、条件にあうすべての統計表の情報(ID, 名前, その他)を得る。
from estat_api import EstatRestApiClient estat_api_client = EstatRestApiClient(app_id= "65a9e884e72959615c2c7c293ebfaeaebffb6030") json_dict = estat_api_client.getStatsList(lang="J", surveyYears="2015", statsCode="00200521", searchWord="人口等基本集計", limit=10, format="json")
-
統計データ取得(getStatsData)
- URLとパラメータを指定して、条件にあう統計表の生データを得る。
from estat_api import EstatRestApiClient estat_api_client = EstatRestApiClient(app_id= "65a9e884e72959615c2c7c293ebfaeaebffb6030") csv_data= estat_api_client.getStatsData(lang="J", statsDataId="0003142014", limit=10, format="csv")
step 2:Cloud Strage, BigQueryに保存
取得した生データ(CSVファイル)を加工して、GCP上にアップロードする。