ある番組でとあるクイズ王の
出身高校の話が出ていて
気になって調べてしまいました。
解説動画はこちら
さて今回はこちらのサイトさんの
データを参考にさせていただいております。
参考:みんなの高校情報
さて
データはCSVなどにして
pandasのデータフレームに取り込みます。
こんな感じのデータになりました。
これを使って行きたいと思います。
まず最初は統計情報です。
全部で7765校分のデータで
平均偏差値は50ですが
中央値は48とやや低いので
低めにデータが偏っていそうですね。
と言うことで
偏差値ごとの学校数で
グラフ化してみましょう。
偏差値を横軸に
学校数を縦軸にとった
ヒストグラムを生成します。
中央値は48でしたが
一番高校が多い偏差値は42ですね。
大体偏差値57位で
全体の80%の高校がおさまります。
ここからは偏差値TOPの学校を
みていきましょう。
偏差値70以上の学校をみるには
こんなコードになりますが
数は218校あるようです。
逆にげべはどうなんだって
話になると思うので
げべはこんな感じでした。
次に都道府県別の偏差値を見てみましょう。
都道府県別などにしたい場合は
カテゴリとして都道府県が必要です。
住所から都道府県を抜き出す関数を作って
うまくデータ化します。
平均偏差値だと埼玉がTOPになるようです。
偏差値70以上の高校だけに絞るコードは
次のようになりました。
40以下をみる場合は条件を40以下に
変更すれば見られます。
最後に都道府県別での箱ヒゲ図を
見ていたいと思います。
都道府県ごとの分布のような
ものを見たい場合にこの箱ヒゲ図は
非常に役立ちます。
seabornと言うライブラリを用いると
箱ヒゲ図を作ることができます。
まとめですが
埼玉県 , 東京都 , 千葉県 , 大阪府 , 兵庫県
この5県は偏差値の平均が高く
この近隣に住むと偏差値の高い高校に
通いやすいでしょうね。
自分は近所の高校で
卒業時の偏差値20くらいなので
今だとどの高校にも入れなさそうwww
今回はこれまでです
それでは
出身高校の話が出ていて
気になって調べてしまいました。
解説動画はこちら
さて今回はこちらのサイトさんの
データを参考にさせていただいております。
参考:みんなの高校情報
さて
データはCSVなどにして
pandasのデータフレームに取り込みます。
こんな感じのデータになりました。
偏差値 | ランク | 学校名 | 住所 | 形態 | 評判 | |
---|---|---|---|---|---|---|
0 | 79 | 1 | 灘高等学校 | 兵庫県神戸市東灘区 | 私立 | 4.51 |
1 | 78 | 2 | お茶の水女子大学附属高等学校 | 東京都文京区 | 国立 | 4.14 |
2 | 78 | 2 | 開成高等学校 | 東京都荒川区 | 私立 | 4.96 |
3 | 78 | 2 | 筑波大学附属高等学校 | 東京都文京区 | 国立 | 4.27 |
4 | 78 | 2 | 筑波大学附属駒場高等学校 | 東京都世田谷区 | 国立 | 4.56 |
これを使って行きたいと思います。
まず最初は統計情報です。
df['偏差値'].describe()
count 7765.000000
mean 50.005151
std 9.265878
min 35.000000
25% 42.000000
50% 48.000000
75% 57.000000
max 79.000000
Name: 偏差値, dtype: float64
全部で7765校分のデータで
平均偏差値は50ですが
中央値は48とやや低いので
低めにデータが偏っていそうですね。
と言うことで
偏差値ごとの学校数で
グラフ化してみましょう。
偏差値を横軸に
学校数を縦軸にとった
ヒストグラムを生成します。
divine_df = pd.DataFrame(df['偏差値'].value_counts().sort_index()) divine_df['累積'] = divine_df['偏差値'].cumsum()/sum(divine_df['偏差値']) divine_df.head()
偏差値 | 累積 | |
---|---|---|
35 | 7 | 0.000901 |
36 | 93 | 0.012878 |
37 | 181 | 0.036188 |
38 | 256 | 0.069156 |
39 | 350 | 0.114231 |
fig, ax1 = plt.subplots(figsize=(16,10)) ax2 = ax1.twinx() ax1.bar(divine_df.index, divine_df['偏差値'], label="偏差値") ax2.plot(divine_df.index, divine_df['累積'],label="累積",c='orange') ax1.xaxis.set_ticks(pd.np.arange(35, 80, 1)) for i,d in enumerate(divine_df['偏差値']): ax1.text(divine_df.index[i], d, "{0}".format(d), size=10) plt.show()
中央値は48でしたが
一番高校が多い偏差値は42ですね。
大体偏差値57位で
全体の80%の高校がおさまります。
ここからは偏差値TOPの学校を
みていきましょう。
df[df['ランク']<=10]
偏差値 | ランク | 学校名 | 住所 | 形態 | 評判 | |
---|---|---|---|---|---|---|
0 | 79 | 1 | 灘高等学校 | 兵庫県神戸市東灘区 | 私立 | 4.51 |
1 | 78 | 2 | お茶の水女子大学附属高等学校 | 東京都文京区 | 国立 | 4.14 |
2 | 78 | 2 | 開成高等学校 | 東京都荒川区 | 私立 | 4.96 |
3 | 78 | 2 | 筑波大学附属高等学校 | 東京都文京区 | 国立 | 4.27 |
4 | 78 | 2 | 筑波大学附属駒場高等学校 | 東京都世田谷区 | 国立 | 4.56 |
5 | 78 | 2 | 東大寺学園高等学校 | 奈良県奈良市 | 私立 | 4.44 |
6 | 78 | 2 | ラ・サール高等学校 | 鹿児島県鹿児島市 | 私立 | 4.09 |
7 | 77 | 8 | 慶應義塾女子高等学校 | 東京都港区 | 私立 | 4.09 |
8 | 77 | 8 | 東京学芸大学附属高等学校 | 東京都世田谷区 | 国立 | 4.49 |
9 | 77 | 8 | 神戸高等学校 | 兵庫県神戸市灘区 | 公立 | 4.10 |
偏差値70以上の学校をみるには
こんなコードになりますが
数は218校あるようです。
df[df['偏差値']>=70]
逆にげべはどうなんだって
話になると思うので
げべはこんな感じでした。
df[df['ランク']==max(df['ランク'])]
偏差値 | ランク | 学校名 | 住所 | 形態 | 評判 | |
---|---|---|---|---|---|---|
7758 | 35 | 7759 | 田口高等学校 | 愛知県北設楽郡設楽町 | 公立 | 3.30 |
7759 | 35 | 7759 | 真壁高等学校 | 茨城県桜川市 | 公立 | 2.77 |
7760 | 35 | 7759 | 京都国際高等学校 | 京都府京都市東山区 | 私立 | 2.19 |
7761 | 35 | 7759 | 西山学院高等学校 | 宮城県刈田郡七ヶ宿町 | 私立 | 2.75 |
7762 | 35 | 7759 | 東大阪大学柏原高等学校 | 大阪府柏原市 | 私立 | 2.83 |
7763 | 35 | 7759 | 耶麻農業高等学校 | 福島県喜多方市 | 公立 | 2.75 |
7764 | 35 | 7759 | 霞城学園高等学校 | 山形県山形市 | 公立 | 2.91 |
次に都道府県別の偏差値を見てみましょう。
都道府県別などにしたい場合は
カテゴリとして都道府県が必要です。
住所から都道府県を抜き出す関数を作って
うまくデータ化します。
def function(se): if '北海道' in se: return '北海道' elif '東京都' in se: return '東京都' elif '大阪府' in se or '京都府' in se: return '大阪府' elif '京都府' in se: return '京都府' else: return se.split('県')[0]+'県' df['都道府県'] = df['住所'].apply(function) df[['都道府県','偏差値']].groupby("都道府県").describe().sort_values(('偏差値', 'mean'),ascending=False)
偏差値 | ||||||||
---|---|---|---|---|---|---|---|---|
count | mean | std | min | 25% | 50% | 75% | max | |
都道府県 | ||||||||
埼玉県 | 352.0 | 53.911932 | 9.417549 | 40.0 | 45.0 | 53.0 | 61.0 | 76.0 |
東京都 | 585.0 | 53.858120 | 9.353889 | 38.0 | 46.0 | 53.0 | 60.0 | 78.0 |
千葉県 | 304.0 | 51.980263 | 9.673870 | 38.0 | 43.0 | 50.0 | 59.0 | 76.0 |
大阪府 | 713.0 | 51.708275 | 9.402465 | 35.0 | 44.0 | 50.0 | 58.0 | 76.0 |
兵庫県 | 334.0 | 51.583832 | 8.879093 | 36.0 | 44.0 | 50.0 | 58.0 | 79.0 |
平均偏差値だと埼玉がTOPになるようです。
偏差値70以上の高校だけに絞るコードは
次のようになりました。
df[df['偏差値']>=70][['都道府県','偏差値']].groupby("都道府県").describe().sort_values(('偏差値', 'count'),ascending=False)
40以下をみる場合は条件を40以下に
変更すれば見られます。
最後に都道府県別での箱ヒゲ図を
見ていたいと思います。
都道府県ごとの分布のような
ものを見たい場合にこの箱ヒゲ図は
非常に役立ちます。
seabornと言うライブラリを用いると
箱ヒゲ図を作ることができます。
import seaborn as sns plt.figure(figsize=(16,10)) idx = df[['都道府県','偏差値']].groupby("都道府県").agg(np.median).sort_values('偏差値',ascending=False).index sns.boxplot(x="都道府県", y="偏差値", data=df,order=idx) plt.xticks(rotation=90) plt.show()
まとめですが
埼玉県 , 東京都 , 千葉県 , 大阪府 , 兵庫県
この5県は偏差値の平均が高く
この近隣に住むと偏差値の高い高校に
通いやすいでしょうね。
自分は近所の高校で
卒業時の偏差値20くらいなので
今だとどの高校にも入れなさそうwww
今回はこれまでです
それでは