Python数据分析实战:北京高考分数线(2006-2019)统计处理

雨后青山
雨后青山
发布时间:2026-10-12 | 2人浏览过
原创

本文基于Python的Pandas库,对北京2006至2019年高考录取分数线进行统计分析。通过数据爬取与本地文件读取,利用groupby、max、min及mean等方法,计算文理科最高最低分、一本与二本分数线差值及历年平均分。结合Matplotlib进行可视化展示,为考生填报志愿提供数据支持。

前言:

为协助考生及家长掌握历年高考录取动态,众多平台汇总了各省市的录取控制分数线,作为志愿填报的重要参考。受多种因素制约,历年分数线存在波动。本文采集了北京地区2006年至2019年的相关数据,并运用Python的Pandas库完成后续的数据分析工作。

1.1 数据爬取

本部分主要阐述数据来源、获取方式以及最终获取的数据结果。

代码:

import pandas as pd

import numpy as np

data=pd.read_excel("scores.xlsx",header=1)

print(data)

运行结果:

分析:本次分析直接读取了本地保存的数据文件。

读者也可选择从相关网站下载数据,或自行编写爬虫程序获取数据源,进而开展数据分析工作。

在数据处理环节,主要采用了Pandas numpy进行数据预处理。

随后使用matplotlib完成数据的可视化展示。

1.2 最高分最低分统计

mindata= data.groupby(['文科','理科'], as_index=False).min(axis=1) 

maxdata= data.groupby(['文科','理科'], as_index=False).max(axis=2) 

print(data.min())

print(data.max())

对数据进行清洗处理,统计最高分与最低分。由于数据涵盖不同年份,且区分文科与理科,因此涉及两组文科数据和两组理科数据的计算。

  • 我们利用groupby按文理科类别进行分组。
  • 接着使用max()和min()分别计算最大值和最小值。
  • 经过上述分析与处理,可以得到打印输出的最大值和最小值结果。

1.3 一本二本理科差值统计

代码:

s1math=data["一本分数线","理科"]
print(s1math)
print(s1math[0]-s1math[2])

s1c=data["一本分数线","文科"]
print(s1c[0]-s1c[2])
s2math=data["二本分数线","理科"]
print(s2math[0]-s2math[2])
s2c=data["二本分数线","文科"]
print(s2math[0]-s2math[2])

运行结果:

注意:

首先提取对应的文理科一本及二本成绩数据,随后计算极差,即使用前一个数值减去后一个数值即可。

print(s1math[0]-s1math[2])

1.4 2006—2019年近14年每科分数线的平均值统计

代码:

# 2006—2019年近14年每科分数线的平均值统计

data1=data[data['Unnamed: 0'].between(2006, 2014, inclusive=True)].groupby(['Unnamed: 0']).mean()

print(data1)

运行结果:

首先提取数据,然后计算平均值。由于此处是一个年份对应一个成绩,并非一对多关系,因此下文介绍的方法更为简便。

也可以采用mean方法来进行平均值的计算。

鉴于是一个成绩对应一个年份,非一对多关系,故下文方法更为高效。

同样可以使用mean方法进行平均值的求解。

至此,关于Python数据分析与处理北京高考分数线统计分析的文章介绍完毕。如需了解更多Python数据分析与处理相关内容,请搜索本站往期文章或继续浏览后续文章,感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表