1908年〜2017年の平均婚姻年齢(初婚・全婚姻)をグラフ化

晩婚化や未婚化がメディアによって声高に叫ばれる昨今、過去は一体どれくらい早婚だったのかということを知りたくなったので、Pythonを使って1908年〜2017年の平均初婚年齢の推移をグラフ化してみることにしました。明治・大正時代はさぞかし早婚だったのだろうと思っていましたが、かなり意外な結果に衝撃を受けています。

スポンサーリンク

データの下準備

先ず、このサイトから必要なデータをダウンロードします。

from IPython.core.display import display, HTML

css = """
table.dataframe {
    font-size:.83em;
}
"""
display(HTML('<style>{}</style>'.format(css)))
from pandas import *

df = read_csv('marriage.csv',encoding='shift_jis')
df.head()
表章項目 時間軸(年次) /平均婚姻年齢及び夫妻の年齢差 平均婚姻年齢_全婚姻-夫 平均婚姻年齢_全婚姻-妻 平均婚姻年齢_初婚-夫 平均婚姻年齢_初婚-妻 平均婚姻年齢差-全婚姻 平均婚姻年齢差-初婚
0 平均年齢【歳】 2017年 NaN 33.4 31.1 31.1 29.4 2.3 1.7
1 平均年齢【歳】 2016年 NaN 33.3 31.1 31.1 29.4 2.2 1.7
2 平均年齢【歳】 2015年 NaN 33.3 31.1 31.1 29.4 2.2 1.7
3 平均年齢【歳】 2014年 NaN 33.2 30.9 31.1 29.4 2.2 1.7
4 平均年齢【歳】 2013年 NaN 33.0 30.8 30.9 29.3 2.2 1.7
df.drop(['表章項目','/平均婚姻年齢及び夫妻の年齢差'],axis=1,inplace=True)
df = df.set_index(['時間軸(年次)'])
df = df.apply(to_numeric, errors="coerce").astype(float)
#df.reset_index(inplace=True)
スポンサーリンク

平均婚姻年齢 (初婚、全婚姻)をプロットする

from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties
from matplotlib import rcParams
style.use('ggplot')

fp = FontProperties(fname='/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf', size=54)
rcParams['font.family'] = fp.get_name()
rcParams["font.size"] = "20"
fig, ax = subplots(figsize=(22,12))
df.dropna(how='any',inplace=True)
df.sort_index(ascending = True,inplace = True)
df[['平均婚姻年齢_初婚-夫','平均婚姻年齢_初婚-妻','平均婚姻年齢_全婚姻-夫','平均婚姻年齢_全婚姻-妻']].plot(ax=ax)
ax.legend(loc='lower right', fancybox=True, framealpha=0.5)
xticks(range(0,len(df.index),2),df.index[::2],rotation=90)
yticks(np.arange(22, 34.1, 1),
       ['{}歳'.format(int(x)) for x in np.arange(22, 34.1, 1)]);

全婚姻とは再婚、再再婚を含んだ婚姻のことを言います。1908年は、15で姐やは嫁に行き♪なんて歌があるぐらいだから、平均初婚年齢は16歳ぐらいだと思っていたのですが、23歳というのはかなりの衝撃でした。というのも、今でも、結婚する女性の多くが25歳までに結婚するからです。

スポンサーリンク

平均初婚年齢をプロットする

全婚姻を入れると、1942年から1952年にいきなりジャンプするので、グラフの精度を高めるために平均初婚年齢のみでプロットすることにします。

fig, ax = subplots(figsize=(22,12))
df.dropna(subset=['平均婚姻年齢_初婚-夫','平均婚姻年齢_初婚-妻'],inplace=True)
df.sort_index(ascending = True,inplace = True)
df[['平均婚姻年齢_初婚-夫','平均婚姻年齢_初婚-妻']].plot(ax=ax)
ax.legend(loc='lower right', fancybox=True, framealpha=0.5)
xticks(range(0,len(df.index),2),df.index[::2],rotation=90)
yticks(np.arange(22, 34.1, 1),
       ['{}歳'.format(int(x)) for x in np.arange(22, 34.1, 1)]);

2012年末の安倍政権誕生後、初婚年齢が平坦化しているのは、それまで晩婚化だったトレンドが、アベノ大不況により結婚すらできなくなった結果であると、世界中の著名な識者達に指摘されています。要するに、政府・日銀の愚の骨頂である円安物価高政策による庶民の貧困化が原因で、晩婚化から未婚化にトレンド変化を起こしたということのようです。2013年春の日銀の異次元緩和を皮切りに、史上空前のアホノミクス開始以来、出生数、婚姻数共にダダ下がりになってしまっているのが何よりの証拠でしょう。若年層の過半数がワープア・ニート・引きこもりと言われている現在の日本の惨状を鑑みると、未婚率が減少することも、出生数が増えることも永久にないように思えます。

1950年〜2017年の日本人女性の年代別出産数推移をグラフ化
1947年〜2018年の出生数と婚姻・離婚件数の推移をプロット
若年・中年・高年・超高年層死亡数推移(1950年〜2017年)
日本の交通事故死亡者数の推移を性別・年齢別に棒グラフ化する
Python:日本人の年齢別死亡者数の推移をプロットして考察する
Python:年齢別交通事故死亡数を死亡割合に変換する
Python:在留外国人比率の高い市町村を条件別に抽出する
Python:日本人の年代別・性別死亡数を視覚化して考察する
Python:結婚適齢期女性が最も余っている都市を探し出す
Python:国籍別に在留外国人数の多い市町村を抽出する
Python:1950年〜2017年の年齢別自殺数推移を棒グラフ化する

スポンサーリンク
スポンサーリンク

フォローする