Python预测2020高考分数和录取情况

所属分类: 脚本专栏 / python 阅读数: 672
收藏 0 赞 0 分享

“迟到”了一个月的高考终于要来了。

正好我得到了一份山东新高考模拟考的成绩和山东考试院公布的一分一段表,以及过去三年的普通高考本科普通批首次志愿录取情况统计。2020年是山东新高考改革的元年,全新的录取模式以及选考科目要求都给考生带来了非常大的挑战。

我正好就本次山东模拟考的成绩进行深入数据分析,用python可视化带大家模拟一下2020高考分数和录取情况。

(代码较长,故只展示部分,完整数据+源码下载见文末)

不同考生的成绩分布图

首先对山东新高考模拟考的成绩进行总体描述:

fig = make_subplots(rows=4,cols=2, #4行2列
          subplot_titles=('所有考生',"物理", "历史", "化学", "地理", "生物", "政治"),
          specs=[[{'colspan': 2},None],[{},{}],[{},{}],[{},{}],
             ]) #specs参数定义了如何分配视图区间, 本案例中的“specs=[[{}, {}],[{'colspan': 2},None]]”表示其他行的两个子图平均分配区间, 第一行的第一个子图占据 2列的区间, 并且不存在第二个子图

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()

选考物理、化学、生物的学生的成绩呈正态分布,大多数学生的成绩集中于中间,成绩两端学生的人数分布较少。而选考文科类(历史、地理、政治)学科的学生的成绩成偏态分布,一段线以下的人数占比较大,尤其历史和地理学科上这种趋势更加明显。

本科上线率

通过计算各科所有选择的人中有多少人的总分在一段线以上,发现,选考物理的学生的上线率最高,达到了67%,而选考历史的学生的上线率较低,只有37%。

选考科目情况

#所有考生的科目选择情况
sum_people = raw_data['所有考生累计人数'].iloc[-1]
subj_select = []
subj_name = ['物理','化学','生物','历史','地理','政治']
subj_select_percent = pd.DataFrame(index = subj_name,columns=['比例'])
for i in subj_name:
  singel_subj = raw_data['选考'+i+'累计人数'].iloc[-1]
  singel_percent = round(singel_subj/sum_people,4)*100
  subj_select.append(singel_percent)
  subj_select_percent.loc[i, '比例'] = singel_percent

在此次模拟考中,分数在150分以上的考生共有489567人,其中选考地理的人数最多,选考比率为63.6%,选考政治的人数最少,选考比率只有34.31%,而备受大家关注的选考物理的比率为41.59%。

需要注意的是,山东2020年高考的正式选科时间是5.25-29,而模拟考的时间在1月,因此上述数据只能作为学生选科的重要参考。

学霸们的选科组合

根据此次公布的一分一段表以及高考志愿辅导专家的分析,大体推测了全省前100名考生的选科情况。

果然,学霸们还是较忠于传统的理科组合(物化生),有89%的人选择了该组合,而传统的文科组合(史地政)没有人选择。或许因为,理科受题目的难度影响较大,当题目较简单时,考生更容易考出高分,而文科更多开放题,考取的高分的概率更小。这也间接导致了,考生倾向选择纯理科或者至少1门理科。

双一流高校录取情况分析

我们统计了近三年双一流高校在山东的理工类专业录取最低分,位次靠前的依次是北京大学,复旦大学,上海交通大学,浙江大学,中国科学技术大学。

我们统计了近三年双一流高校在山东的文史类专业录取最低分,位次靠前的依次是清华大学,北京大学,上海交通大学,复旦大学,中国人民大学。

双一流高校专业录取情况分析

#南丁格尔图
pie_Nightingale(sci_top10['专业'].values.tolist(),
        sci_top10['频数'].values.tolist(),
        '录取最低分排名\n前10的理工类专业', 
        '理科专业top10.html')

我们统计了双一流高校录取最低分所对应的专业频次,结果发现,理工类专业中工科实验班的出现频次最高,双一流高校中有25个学校的录取最低分所对应的专业是工科实验班。

我们同样统计了双一流高录取最低分所对应的文史类专业的频次,结果发现,文史类专业中日语出现的频次最高,双一流高校中有25个学校的录取最低分对应的专业是日语。

高考加油

2020年的寒冬,让所有人的步伐变得蹒跚

1月,教育部下发学生延期开学通知;

2月,关于停课的消息层出不穷;

3月中旬,全国陆续开始实行网络授课;

3月底,正式确认2020年高考将延期一个月举行;

……

在一则又一则“刷新历史”的新闻中,高考生无疑成为了一个备受关注的群体——除了需要面临的学习压力,还要时刻保持着安全距离进行学习和生活……对他们来说,无论疫情还是高考,都成为了一场重大的考验。[1]

祝愿2020高考学子都能考出自己的最佳成绩!

更多精彩内容其他人还在看

pandas的qcut()方法详解

这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

从列表或字典创建Pandas的DataFrame对象的方法

这篇文章主要介绍了从列表或字典创建Pandas的DataFrame对象的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas.DataFrame的pivot()和unstack()实现行转列

这篇文章主要介绍了pandas.DataFrame的pivot()和unstack()实现行转列,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

pandas中的series数据类型详解

这篇文章主要介绍了pandas中的series数据类型详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas 时间格式转换的实现

这篇文章主要介绍了pandas 时间格式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

python中时间、日期、时间戳的转换的实现方法

这篇文章主要介绍了python中时间、日期、时间戳的转换的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas进行时间数据的转换和计算时间差并提取年月日

这篇文章主要介绍了pandas进行时间数据的转换和计算时间差并提取年月日,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法

这篇文章主要介绍了详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

python和c语言的主要区别总结

在本篇文章里小编给各位整理了关于python和c语言的主要区别的相关知识帖内容,有需要的朋友们学习阅读下。
收藏 0 赞 0 分享

选择Python写网络爬虫的优势和理由

在本篇文章里小编给各位整理了一篇关于选择Python写网络爬虫的优势和理由以及相关代码实例,有兴趣的朋友们阅读下吧。
收藏 0 赞 0 分享
查看更多