「もし移住するならどこに住んでみたいですか?」テレワークが普及して職種によってはどこに住んでいても仕事に困らないという方も増えてきました。都会を離れて人の少ない田舎に住みたいという人も居るかもしれませんし、その逆もあるでしょうか。そこで、今回は人口統計を元にして、なでしこで人口密度ランキングを作って移住先の候補の参考にしてみましょう。
人口密度とは?
なお、最初に人口密度の計算方法を確認しておきましょう。人口密度とは、一定の面積の中に人が何人住んでいるかを計算したものです。次のような計算式で求めることができます。
# 人口密度の計算
人口密度 = 人口 ÷ 面積
例えば、国税調査で2020年の日本の総人口は、126,146,099人であり、面積は377,976k㎡です。なでしこ3簡易エディタを開いて、以下のプログラムを入力して実行してみましょう。
# 人口と面積を指定
人口=126_146_099
面積=377_976
# 人口密度を計算して表示
人口密度=人口÷面積
人口密度を表示。
実行してみると、333.74...と表示されます。これは、1k㎡の中に、約334人が住んでいることを表しています。全国の人口密度が一つの基準となりそうです。
また、今回初めて知ったのですが、毎年日本の面積が少しずつ変更されています。国土地理院によると、埋立地の増加などによって変わるのだそうです。面白いですね。(参考)国土の面積が年々変わるのはどうして?
都道府県別の人口と面積はどこで知ることができるの?
それでは、都道府県別の人口と面積を調べていきましょう。これらのデータはどこにあるのでしょうか。
都道府県別の人口は「政府統計の総合窓口 e-Stat」で確認できます。5年に1度行われる国勢調査に基づいたデータです。ここでは「男女別人口及び人口性比 - 全国,都道府県」のページに掲載されているデータを利用してみます。
そして、都道府県別の面積も、同じく「政府統計の総合窓口 e-Stat」からExcel形式でダウンロードできます。
なでしこからデータを読み込めるように微修正
なお、上記の統計情報をそのままプログラムで読み込むと、プログラムが複雑になってしまいます。そこで、上記のデータから必要な部分だけ(都道府県別の人口と面積)を取り出してみました。
これを、なでしこ3から扱えるように、都道府県名を修正したり、ファイルの文字コードをUTF-8に変更して、ファイルをアップロードします。
ここでは、読者の皆さんが手軽に使えるように、なでしこ3貯蔵庫にアップロードしました。
- 都道府県別の人口を抜粋してCSVにしたもの(https://n3s.nadesi.com/image.php?f=88.csv)
- 都道府県別の面積を抜粋してCSVにしたもの(https://n3s.nadesi.com/image.php?f=89.csv)
上記のCSVファイルを使ってプログラムを組み立てましょう。以下のプログラムを簡易エディタに貼り付けて実行してみましょう。
# 都道府県別人口と面積をダウンロード --- (*1)
人口CSV=「https://n3s.nadesi.com/image.php?f=88.csv」からAJAXテキスト取得。
面積CSV=「https://n3s.nadesi.com/image.php?f=89.csv」からAJAXテキスト取得。
# 辞書型のデータに入れる --- (*2)
人口辞書={}
人口CSVをCSV取得して反復
変数[都道府県名,人口]=対象。
人口辞書[都道府県名]=人口。
ここまで。
面積辞書={}
面積CSVをCSV取得して反復
変数[都道府県名,面積]=対象。
面積辞書[都道府県名]=面積。
ここまで。
# 人口密度を求める --- (*3)
密度配列=[]
面積辞書を反復
都道府県=対象キー。
人口密度=人口辞書[都道府県]÷面積辞書[都道府県]
密度配列に[都道府県,人口密度]を配列追加。
ここまで。
# 並び替えてベスト10を表とグラフで表示する --- (*4)
密度配列の1を表数値ソート
密度配列の0に["都道府県", "人口密度"]を配列挿入。
上位10=密度配列の0から11を配列取出。
上位10のテーブル作成
上位10を棒グラフ描画
すると、人口密度の低い都道府県が10個と人口密度を示すグラフが描画されます。なお、こちらから、すぐにプログラムを実行できます。やはり北海道が1位です。
プログラムを確認してみましょう。(*1)の部分ではアップロード済みのCSVファイルを取得します。(*2)の部分では取得したCSVの内容を辞書型のデータに変換します。と言うのも、人口データと面積データは異なるデータなので、これらを都道府県名で照合する必要があるからです。なお、辞書型というのは複数のキーと値をセットにして変数に保存できるデータ型です。
そして、(*3)では、各都道府県の人口と面積を元に人口密度を計算します。「テーブル作成」命令や「棒グラフ描画」命令の引数には、二次元配列変数を指定する必要があるので、変数「密度配列」に二次元配列変数の形式で人口密度のデータを代入します。それから最後(*4)では、人口密度のデータを元に表とグラフを描画します。
人口密度の高い都道府県ベスト10を調べよう
もし、人口密度の高い都道府県ベスト10を表示したい場合には、上記のプログラム(*4)を次のように書き換えます。ただ、下記の(*5)のように「配列逆順」を付け加えるだけです。
# 並び替えてベスト10を表とグラフで表示する --- (*4)
密度配列の1を表数値ソート
密度配列を配列逆順。# ← この行を追加 --- (*5)
密度配列の0に["都道府県", "人口密度"]を配列挿入。
上位10=密度配列の0から11を配列取出。
上位10のテーブル作成
上位10を棒グラフ描画
実行すると次のように、1位に東京が表示されます。
まとめ
以上、今回は都道府県別の人口と面積のデータから、人口密度を調べてベスト10を表示するプログラムを作ってみました。思った通り、人口密度が低いのは北海道、高いのは東京都という結果が表示されました。思った通りの結果だったでしょうか。とは言え、実際のところ、面積の中には人が住めない場所も含まれています。政府統計のデータの中には、面白いデータもあるので、それらを利用して面白い統計を出してみるのも楽しそうです。試してみてください。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。