me-el でグラフ表示すると、対応データの CSV ファイルもダウンロードできるようになります。
今回はダウンロードした CSV ファイルを活用して、人口減少率を求めてみました。
求め方ですが、都道府県単位にピーク時人口と最新(2022年)データを比較、2022年の人口÷ピーク時の人口としました。
Python がササッと使えたらよいのですが、(本サイトのデータ登録機能に使ってはいるものの)まださほど得意ではないので、普段使いの PowerShell で求めてみることにします。今回は Windows 上で作業しています。
まず、ワークフォルダ(例えば C:\Work)を作り、r.ps1 などというファイル名をつけて、以下の中身を貼り付けます。
同じフォルダに、ダウンロードした CSV ファイルも置きます。
$rows = Import-Csv ".\【年別】総人口(総数)_me-el.csv" -Encoding UTF8
$prefs = @{}
foreach ($row in $rows) {
$year = $row."年"
$row | Get-Member | ? { $_.MemberType -eq "NoteProperty" } | % {
$key = $_.Name
if ($key -ne "年") {
$val = $row."$key"
$p = $null
if (!$prefs.ContainsKey($key)) {
$p = [PSCustomObject]@{
pref = $key;
maxValue = [long]0;
maxYear = "";
lastValue = [long]0;
lastYear = "";
ratio = 0;
}
$prefs[$key] = $p
} else {
$p = $prefs[$key]
}
if ($p.maxValue -lt [long]$val) {
$p.maxValue = [long]$val
$p.maxYear = $year
}
# 最終の人口と最終年
$p.lastValue = [long]$val
$p.lastYear = $year
}
}
}
$prefs.Values | % {
$_.ratio = [Math]::Round($_.lastValue * 100 / $_.maxValue, 2).ToString("000.00")
}
$prefs.Values | Select ratio, maxYear, maxValue, lastYear, lastValue, pref | Sort ratio -Descending | `
Export-Csv ".\result.txt" -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
Windows PC 上で PowerShell スクリプトを実行できるようにするには、実行ポリシーを設定する必要があります。
デフォルトではセキュリティのためにスクリプト実行が禁止されていますので(Windows 10 などクライアント OS の場合)、あらかじめ変更しておくか、PowerShell コンソールの起動時に実行ポリシーを指定します。今回は後者で行います。
PowerShell コンソールまたはコマンドプロンプトを Windows のスタートメニューから起動し、以下のように実行します。
PowerShell -ExecutionPolicy RemoteSigned
子の PowerShell プロセスが起動したので、ここからワークフォルダ(ここでは C:\Work) に移動して、スクリプトを実行し、result.txt を得ることができます。
cd C:\Work
.\r.ps1
result.txt を Excel に貼って加工したものが以下です。
最上位は東京かと思っていましたが沖縄県で、最下位の秋田県はピーク(1981年)に比べて26%も減少していることになります。