Pythonで日本のあまりにも酷過ぎる超悲惨な年齢別人口比を考察

暴走列車のように全く歯止めが効かない、ひたすら加速し続ける超高齢化・超少子化により、日本は先進国・新興国の中で最も早く滅び去ると言われている。夢も希望も未来も何もない、お先真っ暗のあまりにも悲惨過ぎる日本の現状を、このサイトを参考にしつつ、年齢別人口比を使って考察してみた。

スポンサーリンク

年齢別人口比データ取得

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

# Read the HTML from the URL and pass on to BeautifulSoup
url = 'https://www.cia.gov/library/publications/the-world-factbook/'
print("Opening the file connection...")
uh= urllib.request.urlopen(url, context=ctx)
print("HTTP status",uh.getcode())
html =uh.read().decode()
print(f"Reading done. Total {len(html)} characters read.")
Opening the file connection...
HTTP status 200
Reading done. Total 86433 characters read.
soup = BeautifulSoup(html, 'html.parser')
country_codes=[]
country_names=[]
for tag in soup.find_all('option'):
    country_codes.append(tag.get('value')[8:10])
    country_names.append(tag.text)

temp=country_codes.pop(0) # To remove the first entry 'World'
temp=country_names.pop(0) # To remove the first entry 'World'
print('COUNTRY NAMES\n'+'-'*30)
for country in country_names[1:]:
    print(country,end=',')
print('\n\nCOUNTRY CODES\n'+'-'*30)
for country in country_codes[1:]:
    print(country,end=',')
# Base URL
urlbase = 'https://www.cia.gov/library/publications/the-world-factbook/geos/'
demographics1=[]
demographics2=[]
demographics3=[]
demographics4=[]
demographics5=[]

offset = len('65 years and over: ')

# Iterate over every country
for i in range(1,len(country_names)-1):
    country_html=country_codes[i]+'.html'
    url_to_get=urlbase+country_html
    # Read the HTML from the URL and pass on to BeautifulSoup
    html = urllib.request.urlopen(url_to_get, context=ctx).read()
    soup = BeautifulSoup(html, 'html.parser')
    
    txt=soup.get_text()
    pos1=txt.find('0-14 years:')
    pos2=txt.find('15-24 years:')
    pos3=txt.find('25-54 years:')
    pos4=txt.find('55-64 years:')
    pos5=txt.find('65 years and over:')
    
    if pos1==-1:
        print(f"**0-14 years % data not found for {country_names[i]}!**")
        demographics1.append(np.nan)
    else:
        text=txt[pos1+12:pos1+18]
        end=re.search('%',text).start()
        a=float((txt[pos1+12:pos1+12+end]))
        demographics1.append(a)
        print(f"0-14 years % data extraction complete for {country_names[i]}!")
    
    if pos2==-1:
        print(f"**15-24 years % data not found for {country_names[i]}!**")
        demographics2.append(np.nan)
    else:
        text=txt[pos2+13:pos2+19]
        end=re.search('%',text).start()
        a=float((txt[pos2+13:pos2+13+end]))
        demographics2.append(a)
        print(f"15-24 years % data extraction complete for {country_names[i]}!")
        
    if pos3==-1:
        print(f"**25-54 years % data not found for {country_names[i]}!**")
        demographics3.append(np.nan)
    else:
        text=txt[pos3+13:pos3+19]
        end=re.search('%',text).start()
        a=float((txt[pos3+13:pos3+13+end]))
        demographics3.append(a)
        print(f"25-54 years % data extraction complete for {country_names[i]}!")
    
    if pos4==-1:
        print(f"**55-64 years % data not found for {country_names[i]}!**")
        demographics4.append(np.nan)
    else:
        text=txt[pos4+13:pos4+19]
        end=re.search('%',text).start()
        a=float((txt[pos4+13:pos4+13+end]))
        demographics4.append(a)
        print(f"55-64 years % data extraction complete for {country_names[i]}!")
        
    if pos5==-1:
        print(f"**65 years and beyond % data not found for {country_names[i]}!**")
        demographics5.append(np.nan)
    else:
        text=txt[pos5+offset:pos5+offset+6]
        end=re.search('%',text).start()
        a=float((txt[pos5+offset:pos5+offset+end]))
        demographics5.append(a)
        print(f"65 years and beyond % data extraction complete for {country_names[i]}!")
data={
    '0-14 years old %':demographics1,
    '15-24 years %':demographics2,
    '25-54 years %':demographics3,
    '55-64 years %':demographics4,
    '65 years and above %':demographics5
}
df=pd.DataFrame(data=data,index=\
 country_names[1:len(country_codes)-1])
df.index.name='Country'
index=df.index.str.strip()
df=pd.DataFrame(data=data,index=index)
df.dropna(inplace=True)
df.head()
0-14 years old % 15-24 years % 25-54 years % 55-64 years % 65 years and above %
Country
Afghanistan 40.92 21.85 30.68 3.95 2.61
Albania 17.84 16.84 41.31 11.77 12.23
Algeria 29.49 14.72 42.97 7.01 5.81
American Samoa 29.59 18.42 36.79 8.96 6.24
Andorra 14.06 9.78 45.27 14.71 16.18

日本の悲惨な現実を見る

df['Japan':].head(1)
0-14 years old % 15-24 years % 25-54 years % 55-64 years % 65 years and above %
Country
Japan 12.71 9.63 37.28 12.01 28.38

何と、65歳以上人口が、24歳以下人口を大幅に上回ってしまっている。もはや絶望的であるとしか言えないだろう。今度は、65歳以上人口を他国と比較してみる。

df1=df[df['65 years and above %']>20]
df1.sort_values(by=\
 ['65 years and above %'],ascending=False)
0-14 years old % 15-24 years % 25-54 years % 55-64 years % 65 years and above %
Country
Monaco 10.27 9.39 32.15 15.04 33.15
Japan 12.71 9.63 37.28 12.01 28.38
Germany 12.83 9.98 39.87 14.96 22.36
Italy 13.60 9.61 41.82 13.29 21.69
Finland 16.44 11.21 37.64 13.19 21.51
Greece 13.72 9.68 42.18 13.28 21.14
Saint Pierre and Miquelon 14.88 8.99 41.44 13.69 21.00
Isle of Man 16.27 11.30 38.48 13.34 20.60
Malta 14.29 11.03 40.92 13.25 20.51
Sweden 17.54 11.06 39.37 11.67 20.37
Portugal 14.01 10.89 42.04 12.80 20.26
Puerto Rico 15.25 13.39 37.99 13.14 20.23
Estonia 16.30 8.80 41.07 13.63 20.20
Slovenia 14.80 9.10 41.71 14.26 20.14

モナコ公国のような人口の少ない金持ち国を別とすれば、日本の65歳以上人口は世界で他に類を見ない、お先真っ暗の絶望的な数字と言えるだろう。24歳以下人口が全人口の2割ちょいの一方で、55歳以上人口が全人口の4割を超えている、このあまりにも酷過ぎる人口動態を見れば、日本には悲惨な阿鼻叫喚の地獄絵図の未来しか待っていないことが馬鹿でも分かるはずだ。ドイツやイタリアの少子高齢化も深刻なように見えるが、ドイツとイタリアは日本と違い大陸国家であり、EU内での人の動きが活発で人口流入も多いことから、日本ほど深刻ではないと言われている。一方、日本は島国であり、アジアの嫌われ者であるばかりでなく世界の嫌われ者なので完全に詰んでいる。

65歳以上人口を比較

df2=df1.iloc[:,4]
df3=df2.sort_values(ascending=False).plot(kind='bar',legend=None,title="old population by Country")

MonacoとIsle of Manは人口が10万人に満たない小国なので省く。Saint Pierre and Miquelonはフランス領なので省く。Puerto Ricoもアメリカ領なので省く。

df2=df1.iloc[:,4]
df2=df2.drop(['Monaco', 'Saint Pierre and Miquelon','Isle of Man','Puerto Rico'])
df3=df2.sort_values(ascending=False).plot(kind='bar',legend=None,title="old population by Country")
df3=df2.sort_values(ascending=True).plot(kind='barh',legend=None,title="old population by Country")
df3.set_xlabel('65 years and above %')
Text(0.5, 0, '65 years and above %')

日本の65歳以上人口の突出っぷりがひと目で分かる。今後もこの数字は悪化の一途を辿るので、如何に日本が詰んでいるかアホでも分かるはずだ。

24歳以下人口を比較

小国や海外領土を省く

df1=df1.drop(['Monaco', 'Saint Pierre and Miquelon','Isle of Man','Puerto Rico'])
df4=df1.iloc[:,0]+df1.iloc[:,1]
df4=df4.sort_values(ascending=True).plot(kind='barh',legend=None,title="young population by Country")
df4.set_xlabel('24 years and below %')
Text(0.5, 0, '24 years and below %')

65歳以上人口トップ10の超高齢国家群の中でも、日本は若年層比率がぶっちぎりのビリである。つまり、日本は世界一の超絶高齢国であるだけではなく、世界一の超絶少子国家でもあるということだ。これだけのひどい状況であるにもかかわらず、日本のアホ国民には全く危機感というものがない。統計捏造がお家芸の大日本帝国政府の大本営発表を信じて、空から爆弾の雨が降ってきてから、自分達の置かれている状況の深刻さを身をもって知った先祖達と同じ道を辿ることになるだろう。馬鹿は死ななきゃ治らない、あるいは、馬鹿な民族は滅び去るというやつだ。