高考結束,用 Python 來分析下哪里的高考是地獄級難度
一年一度的高考,可以說是廣大學子必經的磨練,正所謂十年寒窗苦,一朝天下知。而高考,也成為了當前中國最為廣泛,最為公平的晉升之路,可以說考上了一個名牌大學,那么未來的道路會好走很多。
但是又由于我國幅員遼闊,各地的教育資源又不盡相同,從而導致不同省份的升學難度也不盡相同。有的地方的高考屬于優惠模式,而有的省份的高考競爭,又可以稱得上是地獄模式。下面我們就通過一組數據來具體看一下。
考生人數
高考的升學難不難,一個較為直觀的因素就是內部競爭壓力大不大,那么每個省份的考生人數就很關鍵了。
考生人數前十名的省份
從上圖可以看出,河南的考生人數遠遠超過其他省份,而且聽說復讀生占據了3成的比例,這個內卷太嚴重了。
山東、廣東和四川的考生也超過了70萬人,內部競爭壓力也應該很大。
考生人數后十名的省份
在后十名當中,三個直轄市都上榜了,畢竟面積小,人口相對也少。還有就是大西北的新疆,寧夏,內蒙等,當然還有青藏雙姝西藏和青海。
在這些省份當中,除了三個直轄市以外,其他省份的教育資源都不是特別好,那么可以想象的到,即使內部壓力不大,但是在與其他省份,比如河南,山東等考試競爭的時候,還是會吃虧比較大的。
歷年各省分數線
這里我們從下面的網站抓取了歷年各省的分數線,先來橫向對比下:
http://college.gaokao.com/areapoint/p1/
抓取與數據處理部分代碼
df = pd.DataFrame()
for i in range(1, 206):
test = "http://college.gaokao.com/areapoint/p%s/" % str(i)
print(test)
d = pd.read_html(test)[0]
df = pd.concat([df, d], axis=0, ignore_index=True)
benke = df[df["批次名稱"].isin(['本科一批'])|df["批次名稱"].isin(['本科批'])|df["批次名稱"].isin(['本科'])|df["批次名稱"].isin(['平行錄取一段'])|df["批次名稱"].isin(['普通類一段'])]
benke_2020 = benke[benke["年份"]==2020].drop_duplicates()
benke_2020_like = benke_2020[(benke_2020["文理分科"]=='理科')|(benke_2020["文理分科"]=='綜合改革')]
benke_2020_like_wenke = benke_2020[(benke_2020["文理分科"]=='文科')|(benke_2020["文理分科"]=='綜合改革')]
benke_2020_like_sort = benke_2020_like.sort_values(by=['最低控制分數線'], ascending=False)
benke_2020_like_sort_wenke = benke_2020_like_wenke.sort_values(by=['最低控制分數線'], ascending=False)
下面先來看下2021年,各省份的分數線情況:
可以看到,一本理科分數線最高的為四川,高達521,這個數字好像不是特別高,因為我們似乎仍然記得2020年的最高分數線。
接下來是文科比較
錄取分數線最高的竟然是云南,而且高達565,不得不說,文科還是更卷啊!
對比2020年,浙江則是最高的594,只能說浙江的同學們,太難了,也太厲害了!
當然了,河南的同學也不容易,雙雙第二名,苦著呢!
我們再通過圖例來更加直觀的看一下各省份的錄取分數線。
2020理科一本分數前十
在2020年,前十名里,一本分數線都超過了500分,競爭壓力還是很大的,而到了2021年,前十名里,不僅總體分數下降了,而且有五名都是500分以下,這是不是說明高中生們的壓力沒有那么大了呢~
2020文科一本分數前十
總體來說,文科想來要比理科的分數高,但是2021年還是比2020年要低了不少的。
當然了,上面這些還不能很全面的反映一個省份的高考難易程度,我們再來看一下各個省份的高校情況。
高質量高校
我這里提前獲取了全國各省份的高校數據,下面先來看下各省高校數量情況。
df = pd.read_csv("college_data.csv")
df_new = df.drop_duplicates(subset=['name']) # 有重復的數據,需要刪除
df_site = df_new[df_new['site'] != '——']
df_site = df_site[df_site['site'] != '------']
# 高校總數量分析
site_counts = df_site['site'].value_counts()
dict_site = {'name': site_counts.index, 'counts': site_counts.values}
data = pd.DataFrame(dict_site)
b = (Bar()
.add_xaxis(data['name'].values.tolist()[:10])
.add_yaxis("", data['counts'].values.tolist()[:10])
.set_global_opts(
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
title_opts=opts.TitleOpts(title="各城市高校數量", subtitle=""),
# datazoom_opts=opts.DataZoomOpts(),
)
.set_series_opts()
)
grid = Grid(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
grid.add(b, grid_opts=opts.GridOpts(pos_left="20%"))
grid.render_notebook()
上面進行了簡單的數據處理,可以得到各省份的高校數量。
高校數量
可以看到高校數量最多的是江蘇,而號稱高校重災區的河南也赫然在榜。
那么再來看下985&211數量情況呢?
這下差距就明顯了,北京太強了,獨一份的存在!
河南已經不見了,鄭州大學就是獨苗!
高考難度等級
下面,我們來自己寫一個規則,判定下各省份的高考難度情況。
我們選擇的參考變量為各省份的高質量院校數量和該省份的考生數量。
公式為:(高質量院校/10)/(考生人數/10)
這里得到的數值就是每個省份的難易程度,數值越大,難度越高!
最終我們得到的數據大概如下,finally_par 就是最終的難度系數。
河南一馬當先,這很河南啊!
高考難度前十名
可以看到,我們通過上面的計算方式得出的難度系數之后,河南,江西,廣西占據前三,不知道這三個地方的童鞋們是不是也是這種感受呢?
高考難度后十名
對于后十名,相信很多同學都有自己的看法。
很明顯,三大直轄市,人口少,高質量高校多,那么相對來說考上名牌大學的機會也自然多了。
另外東三省也有幸上榜,人口少就是優勢嗎?
高考難度地圖分布
下面我們來看下高質量院校的分布與高考難度的分布情況。
高質量院校分布熱力圖
很明顯,京津地區無可比擬。
高考難度分布熱力圖
基本和高質量院校分布呈反向分布,看來建設高質量的高等學府才是出路呀!
最后再來看一張更加直觀的地圖分布。
只想說一句,河南啊河南,你都紅了!