Web にアップされている統計データを Colab から利用する2つのポイント【データ分析入門】

5 min

総務省統計局のホームページのようにweb上には様々なデータが転がっていますが上手く活用されていないのが現状だと思います。その原因のひとつは、多くのデータが分散しているからではないかと思います。
本記事を最後まで読むと、 Google Colaboratory を活用してURLを登録(複数指定可能)するだけでweb 上の Excel ファイルを Google ドライブに保存出来るようになります。
一度URLを登録すれば繰り返し自動で保存出来るので、データ管理が楽になります。

広告_零号機

統計データ( Excel ファイル)の URL を調べる

総務省統計局のホームページに様々な統計データが眠っている

web上には様々なデータがありますが、本記事では総務省統計局のデータを活用することを目指します。

統計局のHPには、国勢調査経済センサス人口推計労働力調査家計調査消費者物価指数など統計局が実施している統計調査・加工統計及び日本統計年鑑日本の統計世界の統計などの総合統計書の分野別一覧が表示されています。

本記事では、この中でもサンプルとして2007年以降の「人口推計」を収集することを目指します。

ブラウザのデベロッパー・ツールを使用して絶対URLを知る

人口推計(2019年(令和元年)10月1日現在)のHPにアクセスします。

画面下部に統計データ(Excel形式)をダウンロードするリンクがあります。

リンクをクリックすることでダウンロード出来ますが、自動化するためにURLを調べます。

そこで、下記のようにデベロッパーツール(Chromeの場合、ctrl+shift+iで起動)を使用してリンクにはられているURLを調べます。デベロッパーツールを開き「ctrl+f」で検索窓を開きリンクの文字で検索します。a タグの href への設定値を調べます。

ChromeのデベロッパーツールでリンクURLが取得可能

今回の場合は “zuhyou/05k01-3.xlsx” であること解りました。

URLには “http” や “https “から始まる絶対URLと “/” などから始まる相対URLがありますが、ここでは絶対URLが必要なので、このwebページの URL(https://www.stat.go.jp/data/jinsui/2019np/) と組み合わせてリンクの絶対URLを組み立てます。

今回の場合は “https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx” になります。

webページのURLとリンクの相対URLを組み合わせてリンクへの絶対URLが取得可能

本当にこれでダウンロード出来るかどうかを確認するためにブラウザでURLを指定します。

ブラウザにURLを指定してダウンロードが始まれば成功です。

命名規約を予測して効率的に複数のURLを知る

2007年以降の「人口推計」を収集することが目標です。

現時点では2019年度のURLしか解らないので、もう一つサンプルでURLを取得して比較します。

先程と同様に2018年度を調べて比較すると下記のようになります。

2019年度(令和元年):https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx
2018年度(平成30年):https://www.stat.go.jp/data/jinsui/2018np/zuhyou/05k30-3.xls

どうやら、ディレクトリは西暦、ファイル名は和暦を使用していることが解ります。

URL を指定してGoogle ドライブにダウンロードする

Google ドライブをマウントする

Google Colab にて下記コードを実行して Google ドライブをマウントします。

# Googleドライブのマウント
from google.colab import drive
drive.mount('/content/drive')

ダウンロード対象のURLリストの準備

URLの命名規約が解ったので2007年以降のURLと保存時のファイル名(任意)を登録します。

# ダウンロード対象のURLリストの準備
# (x, y) = (URL, ファイル名)
urllist = [
  ("https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx", "jinsui_2019_zuhyou3_data.xlsx"),
  ("https://www.stat.go.jp/data/jinsui/2018np/zuhyou/05k30-3.xls","jinsui_2018_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2017np/zuhyou/05k29-3.xls","jinsui_2017_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2016np/zuhyou/05k28-3.xls","jinsui_2016_zuhyou3_data.xls"),
#  ("https://www.stat.go.jp/data/jinsui/2015np/zuhyou/05k27-3.xls","jinsui_2015_zuhyou3_data.xls"), e-Startにデータあり
  ("https://www.stat.go.jp/data/jinsui/2014np/zuhyou/05k26-3.xls","jinsui_2014_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2013np/zuhyou/05k25-3.xls","jinsui_2013_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2012np/zuhyou/05k24-3.xls","jinsui_2012_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2011np/zuhyou/05k23-3.xls","jinsui_2011_zuhyou3_data.xls"),
#  ("https://www.stat.go.jp/data/jinsui/2010np/zuhyou/05k22-3.xls","jinsui_2010_zuhyou3_data.xls"), e-Startにデータあり
  ("https://www.stat.go.jp/data/jinsui/2009np/zuhyou/05k21-3.xls","jinsui_2009_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2008np/zuhyou/05k20-3.xls","jinsui_2008_zuhyou3_data.xls"),
  ("https://www.stat.go.jp/data/jinsui/2007np/zuhyou/05k19-3.xls","jinsui_2007_zuhyou3_data.xls")
]

ダウンロードする

下記コードを実行して Google ドライブにダウンロードします。

# 指定のフォルダにExcelファイルをダウンロード
import requests

_basepath = r"/content/drive/MyDrive/Colab Notebooks/data/"
filelistInGoogleDrive = []
for (url, filename) in urllist:
  urlData = requests.get(url).content
  filefullpath = _basepath + filename
  filelistInGoogleDrive.append(filefullpath)
  print(filefullpath)
  with open(filefullpath ,mode='wb') as f: # wb でバイト型を書き込める
    f.write(urlData)

下記の通りダウンロード出来ます。

ダウンロードしたファイルを起動すると下記の通り、県別の人口が解ります。

おわりに

本記事では、Google Colaboratory を使用してweb 上の Excel ファイルを Google ドライブにダウンロードしました。ご参考になりましたらtwitterをフォローしてSNSでシェアして頂ければ幸いです。

次回は、ダウンロードした Excel ファイルを読み込み可視化することを目指します。

ご参考

ちなみに今回は下記 Chromebook を使用しました。
14.0型フルHD × Core i3 × メモリ8GB を満たす数少ない端末です。
軽くて持ち運びしやすく開発に耐えうるスペックなのでおすすめです。

富士通|FUJITSU ノートパソコン FMV Chromebook 14F(タッチパネル) ダーククロム FCB143FB [14.0型 /Chrome OS /intel Core i3 /メモリ:8GB /SSD:128GB /タッチパネル対応 /2021年12月モデル]【point_rb】

価格:70,510円
(2022/2/23 18:35時点)
感想(1件)

Chromebook でプログラミングを始める方法については下記記事をご参考下さい。

広告_零号機-エリア2
kewton

kewton

大学院卒業後、某大手SIerで10年以上SEとして従事。
社会人3年目までに基本情報・応用情報技術者、データベーススペシャリスト、簿記3級・2級を取得。
基幹系システム・IoTシステム開発のプロジェクト経験多数。AI活用システムの企画・プロト開発経験あり。
強みは、プロマネだけでなく自身で開発も実施してきたこと。
【扱える言語】
C#、java、python、javascript、Excel VBA
【扱えるDB】
oracle、sql server、postgreSQL、mongoDB

FOLLOW

関連記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA