[Python] World Bankのdatasetから世界各国の人口データをdataframeにて入手する


時々、世界各国の人口データを使いたいときがあったのですが、Wikipediaなどからエクセルにコピーして読み込まないといけませんでした。

しかし、最近、World bankより人口を含んだデータセットが提供されていることが分かり、データフレームとして簡単に取り込むことができたので、自分の忘備録として記録に残します。

なお、私はWindows10でJupyterNotebookにてPythonを利用しています。

まず、pipでインストールします。

pip install world_bank_data --upgrade

次に、こちらのコードを実行します。

import pandas as pd
import world_bank_data as wb
pd.set_option('display.max_rows', 20)

# Same data set, indexed with the country code
population = wb.get_series('SP.POP.TOTL', id_or_value='id', simplify_index=True, mrv=1)
countries = wb.get_countries()

# Aggregate region, country and population
df = countries[['region', 'name']].rename(columns={'name': 'country'}).loc[countries.region != 'Aggregates']
df['population'] = population
df['population'] =df['population'].fillna(0).astype(int) #浮動小数点n表示になるのでintに変換
df['population_Oku'] = population/100000000
df.sort_values('population', ascending = False).head(5)

そうすると、このようなに世界の人口Top5を表示できます。

アジアの人口トップ10も出してみました。

df[df['region'].str.contains("East Asia")].sort_values('population', ascending = False).head(10)

こちらの英語のサイトを参考にしています。
ページの一番下のplottyで作ってあるチャートはなかなかいいなと思いました。