世界の人口を見る【Python】
こんにちは。今回は世界の人口推移をPythonを使って、見ていこうと思います。
kaggleに『World Population Dataset』があるので、これを使います。
Jupyter Notebookでファイルを開きます。
import pandas as pd
df = pd.read_csv("C:\\Users\\csv_file\\world_population.csv")
df.head(5)
1970年、1980年、1990年、2000年、2010年、2015年、2020年、2022年の各国の人口のデータがあります。
列が多くて途切れてますが、"Area"の隣は順番に"Density(perkm²)"と"Growth Rate"と"World Population Percentage"です。
まずはデータを使いやすくする為に整形をします。
dfにnullがあるのかチェックします。
もしあれば削除します。
df.isnull().sum()
nullは0です。
不要な列"CCA3","Capital","Growth Rate"を削除します。
df.drop(["CCA3","Capital","Growth Rate"], axis=1, inplace=True)
最後に"Country"をインデックスにセットして整形は終わりです。
df = df.set_index("Country")
まとめると
df.isnull().sum()でnullをチェック
df.drop()で列を削除
df.set_index()で"Country"をインデックスにセット
整形は以上になります。
それでは早速みていきましょう。
まずは世界の人口Top10(2022年)から見ていこうと思います。
df_top10 = df.sort_values("Rank").head(10)
1位 中国 1,425,887,337
2位 インド 1,417,173,173
3位 アメリカ合衆国 338,289,857
4位 インドネシア 275,501,339
5位 パキスタン 235,824,862
6位 ナイジェリア 218,541,212
7位 ブラジル 215,313,498
8位 バングラデシュ 171,186,372
9位 ロシア 144,713,314
10位 メキシコ 127,504,125
import matplotlib.pyplot as plt
fix, ax = plt.subplots()
plt.bar(df_top10.index, df_top10["2022 Population"])
plt.xticks(rotation=90)
plt.rcParams['figure.figsize'] = (7 ,8)
plt.tick_params(labelsize=15)
plt.style.use('ggplot')
plt.show()
中国とインドが飛び抜けて、14億人を超えていますね。3位のアメリカ合衆国と10憶の差があります。3位以降のグラフは徐々に低くなって階段状となっていますね。4億から14億のあいだで、ひとつも国がないのが不思議です。
では世界一の人口を誇る中国の推移を見ます。
10年単位の推移で見るために"2015 Population"、"2022 Population"は削除します。
df_every10 = df.drop(["2015 Population", "2022 Population"], axis=1)
import matplotlib.pyplot as plt
fix, ax = plt.subplots()
# 国を指定
state = df_every10.loc["China"]
ax.plot(state.index[7:1:-1],state[7:1:-1])
loc = ['2020 Population', '2010 Population', '2000 Population',
'1990 Population','1980 Population', '1970 Population']
labels = ['2020', '2010', '2000', '1990', '1980', '1970']
plt.xticks(loc, labels)
plt.rcParams['figure.figsize'] = (7 ,8)
plt.tick_params(labelsize=15)
plt.style.use('seaborn-darkgrid')
plt.show()
中国は1970年の時点で8億2000万人の国民がいます。1970年から2020年までの50年間で6億人増えてます。1年毎に1,200万人増加していることになります。
2010年後半には14億人を超えました。
次にインドを見ます。
# 国を指定
state = df_every10.loc["India"]
インドは1970年から50年間で8億人も人口が増加していて、一番の増加がみられるんじゃないんでしょうか。グラフの勢いが変わらないです。平均すると1年毎に1,300万人の増加です。
中国とインドを比較すると、インドが数年以内に中国を追い抜きそうです。
# 中国とインドを比較
state = df_every10.loc["China"]
state_2 = df_every10.loc["India"]
ax.plot(state.index[7:1:-1],state[7:1:-1], label=state.name)
ax.plot(state_2.index[7:1:-1],state_2[7:1:-1], label=state_2.name)
plt.legend(fontsize=18)
このデータ上では、1970年から2022年まで中国が不動の首位です。
では次に日本を見てみます。
日本の人口の世界ランキングは11位です。惜しくもTop10には入れませんでした。
# 国を指定
state = df_every10.loc["Japan"]
1970年から2010年までの40年間で2200万人増加して、2010年以降は減少しています。2010年からの10年間で280万人減少して、少子化問題が深刻なのが分かります。
次は経済大国のアメリカを見てみます。
# 国を指定
state = df_every10.loc["United States"]
アメリカは1970年から50年間で、1億3500万人増えました。1990年から2000年までの10年間がとても大きく、3400万人増加してます。
主要先進7カ国(G7)で見ると日本とイタリアが減少しています。
六大陸で見るとこうなります。
continent = df.groupby("Continent")["2022 Population", "World Population Percentage",
"Area (km²)"].sum()
continent.sort_values("2022 Population", ascending=False)
fig, ax = plt.subplots()
labels = ["Africa", "Asia", "Europe", "North America", "Oceania","South America"]
x = continent["2022 Population"]
cmap=plt.get_cmap("Set2") # カラーマップを指定
colors = [cmap(i) for i in range(len(x))] # カラーマップから色のリストを生成
textprops = {'fontsize':16}
ax.pie(x, startangle=26, labels=labels, autopct="%1.1f %%",
textprops=textprops, pctdistance=0.8, colors=colors)
plt.show()
アジアが全体の60%を占めてます。中国、インドを含むアジアは人口がとても多いです。ちなみにこのデータではロシアはヨーロッパになっています。
x = continent["Area (km²)"]
面積で見ると、広ければ人口が多いという訳ではなさそうです。アジアとアフリカはほとんど同じです。
最後に人口が少ない国Top10(2022年)を見ます。
df.sort_values("2022 Population").head(10)
1位のバチカン市国の510人で、唯一の100桁代です。あとは1000桁代が5つあって、1万人規模の国が続きます。どれも聞いたことのない国ばかりです。
ランキングを見た限り、どうやらバチカン市国は面積の少なさもNo.1みたいです。
以上です。
この記事が気に入ったらサポートをしてみませんか?