What Do Shandong’s 2020 Gaokao Scores Reveal? A Python Data Dive
Using Python, the author analyzes Shandong’s 2020 Gaokao simulation scores, visualizing distribution patterns, pass rates, subject selection ratios, top‑student combinations, and double‑first‑class university admission thresholds, providing data‑driven insights for students and educators.
I obtained the Shandong new‑Gaokao simulation results, the one‑point‑per‑section table released by the Shandong Examination Authority, and three years of admission statistics. 2020 marked the first year of the new Gaokao reform, bringing new scoring and subject‑selection challenges, so I used Python to visualize and analyze the data.
Different Students' Score Distribution
First, I described the overall score distribution of the simulation.
fig = make_subplots(rows=4, cols=2, subplot_titles=('所有考生','物理','历史','化学','地理','生物','政治'),
specs=[[{'colspan': 2}, None], [{}, {}], [{}, {}], [{}, {}]])
fig.add_trace(go.Scatter(x=raw_data['分数段'], y=raw_data['所有考生本段人数'],
fill='tozeroy', mode='lines',
marker=dict(size=8, color='rgb(88, 182, 192)')),
row=1, col=1)
img_file = os.path.join(img_dir, 'img1.svg')
fig.write_image(img_file, scale=1)
fig.show()Students who selected physics, chemistry, or biology show a normal distribution centered around the median, while those who chose humanities subjects (history, geography, politics) exhibit a skewed distribution with many low‑score students, especially in history and geography.
Undergraduate Pass Rate
Calculating the proportion of students whose total score exceeds the cutoff shows that physics‑selecting students have the highest pass rate at 67%, whereas history‑selecting students have the lowest at 37%.
Subject Selection Situation
# All students' subject selection statistics
sum_people = raw_data['所有考生累计人数'].iloc[-1]
subj_select = []
subj_name = ['物理','化学','生物','历史','地理','政治']
subj_select_percent = pd.DataFrame(index=subj_name, columns=['比例'])
for i in subj_name:
single_subj = raw_data['选考'+i+'累计人数'].iloc[-1]
single_percent = round(single_subj / sum_people, 4) * 100
subj_select.append(single_percent)
subj_select_percent.loc[i, '比例'] = single_percentIn this simulation, 489,567 students scored above 150 points. Geography was the most selected subject (63.6%), politics the least (34.31%), and physics attracted 41.59% of the candidates.
Note: The official subject‑selection period for the 2020 Shandong Gaokao was May 25‑29, while the simulation was conducted in January, so the data serve only as a reference.
Top Students' Subject Combinations
Based on the published score table and expert analysis, the subject choices of the province’s top 100 candidates were inferred.
Almost 89% of these high‑scoring students chose the traditional science combination (physics, chemistry, biology), while none selected the traditional humanities combination (history, geography, politics), indicating a strong preference for science tracks.
Double‑First‑Class University Admission Analysis (Science Majors)
Over the past three years, the lowest admission scores for science majors at double‑first‑class universities in Shandong were led by Peking University, Fudan University, Shanghai Jiao Tong University, Zhejiang University, and University of Science and Technology of China.
Double‑First‑Class University Admission Analysis (Humanities Majors)
For humanities majors, the top institutions were Tsinghua University, Peking University, Shanghai Jiao Tong University, Fudan University, and Renmin University.
Major‑Level Admission Frequency
# Nightingale chart for top 10 science majors
pie_Nightingale(sci_top10['专业'].values.tolist(),
sci_top10['频数'].values.tolist(),
'录取最低分排名
前10的理工类专业',
'理科专业top10.html')Engineering experimental classes appear most frequently among the science majors, with 25 universities admitting the lowest‑score students to these programs.
In humanities, Japanese language majors dominate the frequency count, also appearing in 25 universities as the lowest‑score admission major.
Data and Source Code
All data and source code used in this analysis can be downloaded from the following link (if the link expires, reply “0704” in the backend to obtain an updated link):
https://alltodata.cowtransfer.com/s/df3282dfb9e34a
Reference
Original article: https://www.sohu.com/a/400282008_99909423
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Python Crawling & Data Mining
Life's short, I code in Python. This channel shares Python web crawling, data mining, analysis, processing, visualization, automated testing, DevOps, big data, AI, cloud computing, machine learning tools, resources, news, technical articles, tutorial videos and learning materials. Join us!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
