Python-北京高考分数线统计分析
a Fang 人气:1前言:
为了帮助广大考生和家长了解高考历年的录取情况,很多网站都汇总了各省市的录取控制分数线,为广大考生填报志愿提供参考。因受多种因素影响,每年的分数线或多或少会有一些变动。采集北京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())
进行数据的处理,最高分最低分统计,因为有两个不同的年份的成绩,并且分了文科和理科所以就有2个文科2个理科
- 我们使用
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])
运行结果:
注意:
首先我们取出相应的文理科一本以及二本的成绩,然后再进行相关的极差的计算就是使用前一个数减去后面的一个数就OK。
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
方法进行相关的平均值求取。
加载全部内容