「もし移䜏するならどこに䜏んでみたいですか」テレワヌクが普及しお職皮によっおはどこに䜏んでいおも仕事に困らないずいう方も増えおきたした。郜䌚を離れお人の少ない田舎に䜏みたいずいう人も居るかもしれたせんし、その逆もあるでしょうか。そこで、今回は人口統蚈を元にしお、なでしこで人口密床ランキングを䜜っお移䜏先の候補の参考にしおみたしょう。

  • 人口密床の䜎い郜道府県ベスト10を調べお衚ずグラフで衚瀺しよう

    人口密床の䜎い郜道府県ベスト10を調べお衚ずグラフで衚瀺しよう

人口密床ずは

なお、最初に人口密床の蚈算方法を確認しおおきたしょう。人口密床ずは、䞀定の面積の䞭に人が䜕人䜏んでいるかを蚈算したものです。次のような蚈算匏で求めるこずができたす。

# 人口密床の蚈算
人口密床 = 人口 ÷ 面積

䟋えば、囜皎調査で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(マむナビ出版)」など。