見出し画像

【データ分析】茨城県内の市町村の小学生数の推移について

こんにちは。つくばに住む研究者です。

今回は茨城県内の各市町村について、小学生の数がどのように推移しているのかについて見ていきます。出典は学校基本調査の学年別児童数の集計結果です。今回はデータ形式などの諸々の事情から平成24年〜平成27年までの合計4年度分についてだけ見てみます。

最終的には↓こんな感じのグラフを作ります

茨城県内の各市町村の小学生数の推移

各年度の児童数のデータをe-Statからダウンロードし、作業フォルダにおきます。使いやすくするために、それぞれのファイル名についてdict型の変数にして名前をつけておきます。(下記ではH22、H23についてもデータを取り込みましたが、どうも不備がありそうなので後で削除しています)

years = ['H22','H23','H24','H25','H26','H27']
files = {'H22':'H22_FEH_00400001_230817120106.csv',
         'H23':'H23_FEH_00400001_230817115907.csv',
         'H24':'H24_FEH_00400001_230817115834.csv',
         'H25':'H25_FEH_00400001_230817115719.csv',
         'H26':'H26_FEH_00400001_230817115608.csv',
         'H27':'H27_FEH_00400001_230817115400.csv'}

前回までと同様の方法でデータを整形していきます。

df_new = pd.DataFrame(columns=years)
df_new.insert(0, '都市名', None)

for y, f in files.items():
  df = pd.read_csv(dir_path+'/2023_08/'+f, encoding='SHIFT-JIS')
  df = df[df['学年別'] == '計']
  df = df[df['性別'] == '計']

  for i, cities in enumerate(df['area_code'].unique()):
    df_new.loc[i,'都市名'] = str(cities) + '_' + str(df[df['area_code']==cities]['市町村別'].values[0])
    df_new.loc[i, y] = df[df['area_code']==cities]['value'].values[0]

df_new = df_new.dropna(axis=0)
df_new[years] = df_new[years].astype(int)

さて、学校基本調査のデータは全国分についてありますが、今回は茨城県内についてだけ興味がありますので、データを絞り込みます。

#茨城の自治体にしぼる
df_new = df_new[~df_new['都市名'].str.contains('.*000:*')]
df_new = df_new[~df_new['都市名'].str.contains('1099_計')]
df_new = df_new[df_new['都市名'].str.startswith('8')]

df_new = df_new.drop('H22', axis=1)#H22のデータは不備がありそうなので排除
df_new = df_new.drop('H23', axis=1)#H23のデータは不備がありそうなので排除

H24を基準として児童数の推移を確認できるように、他の年度の値についてH24の値で割っておきます。

df_new['H25'] = df_new['H25']/df_new['H24']
df_new['H26'] = df_new['H26']/df_new['H24']
df_new['H27'] = df_new['H27']/df_new['H24']
df_new['H24'] = df_new['H24']/df_new['H24']
df_new = df_new.set_index('都市名')
df_new.head(3)

整形したデータを確認します。

どうやら意図した形式に揃えられているようですので、これを折れ線グラフにしてみます。

fig = plt.figure(figsize=(14,12),dpi=100)
ax = fig.gca()
plt.rcParams["font.size"] = 14
plt.xticks(rotation=90)
ax.set_xticks([*range(0,df_new.shape[1])]) 
ax.set_xticklabels(df_new.columns[0:4])

ax.set_ylabel('H24を基準とした小学生数')
for i in range(0,30):
  plt.plot(range(0,df_new.shape[1]),df_new.iloc[i][df_new.columns[0:]],label=df_new.index[i])

for line, name in zip(ax.lines, df_new.index):
    y = line.get_ydata()[-1]
    ax.annotate(name, xy=(1,y), xytext=(6,0), color=line.get_color(), 
                xycoords = ax.get_yaxis_transform(), textcoords="offset points",
                size=14, va="center")

plt.title('茨城県内の各市町村の小学生数の推移')
ax.grid()
plt.show()
茨城県内の各市町村の小学生数の推移

冒頭で示した折れ線グラフができました。H24を基準として、その後の3年間で生徒数が増加した自治体の数は僅か4つとなりました。一方で、生徒数が減少した自治体の数は40となりました。またその殆どが24年以降は一度も生徒数は増えておらず、単純減少です。
最も増えていたのは牛久市で増加率は約6.5%、減少が最も大きかったのは常陸太田市で約15.4%です。
興味深いところでは、行方市がH26からH27の間に大きく増加しています(同士について特に合併等の記録は見つかりませんでした)。H28以降についての推移がどうなったのか大変興味がありますが、同形式のデータがすぐには見つかりませんでした。

平成27年というのはだいたい7年前のデータなので少し古いですね。つくば市は昨年(2022)度の人口増加率が最も高かった、というニュースもありますので、現在はもっと増えているかもしれません。特に駅周辺の中心部で高層マンションが増えたようなので、一部の小学校への生徒の集中などが起きているかもしれません。

次回はより詳細な小学校についてのデータか、財政についてのデータについてみてみたいと思います。

それでは。


この記事が気に入ったらサポートをしてみませんか?