数据集汇总|数据集(高考录取分数)

数据集:高考录取分数 【数据集汇总|数据集(高考录取分数)】下载地址,本文用于观察数据的变化趋势,对数据作相应的排序或可视化,为未来的录取分数做预测。
1. 字段描述

字段名称 字段类型 字段说明
ID 数值型 数据编号
学校 字符型 学校名称
学校编号 数值型 学校编号
文/理 字符型 文科/理科分数线
招生省份 字符型 分数线所对应的招生省份
录取分数1 字符型 2020录取分数
录取分数2 字符型 2019录取分数
录取分数3 字符型 2018录取分数
录取分数4 字符型 2017录取分数
录取分数5 字符型 2016录取分数
平均分数 数值型 近五年平均录取分数
2. 数据预处理 2.1 导包
import numpy as np import matplotlib.pyplot as plt import pandas as pd import os import warnings warnings.filterwarnings('ignore')

2.2 读取数据
df = pd.read_csv('高考录取分数数据集.csv')

2.3 预览数据
print(df.head())

结果
ID学校学校编号 文/理 招生省份 录取分数1 录取分数2录取分数3录取分数4录取分数5平均分数 00北京大学1理北京680686------678------681.333333 11北京大学1理天津701692682687------690.500000 22北京大学1理辽宁693688690687------689.500000 33北京大学1理吉林694685692670692686.600000 44北京大学1理黑龙江700688688------------692.000000

2.4 规范字段名称
df=df.rename(columns={ '录取分数1':'2020录取分数','录取分数2':'2019录取分数','录取分数3':'2018录取分数','录取分数4':'2017录取分数','录取分数5':'2016录取分数','平均分数':'近五年平均录取分数'})

2.5 查看数据基本信息
df.info()

结果
RangeIndex: 46927 entries, 0 to 46926 Data columns (total 11 columns): #ColumnNon-Null CountDtype ---------------------------- 0ID46927 non-nullint64 1学校46927 non-nullobject 2学校编号46927 non-nullint64 3文/理46927 non-nullobject 4招生省份46927 non-nullobject 52020录取分数46927 non-nullobject 62019录取分数46927 non-nullobject 72018录取分数46927 non-nullobject 82017录取分数46927 non-nullobject 92016录取分数46927 non-nullobject 10近五年平均录取分数46927 non-nullfloat64 dtypes: float64(1), int64(2), object(8) memory usage: 3.9+ MB

2.6 查看重复值
print(df.duplicated().sum())

结果
0

2.7 查看缺失值
print(df.isnull().sum())

结果
ID0 学校0 学校编号0 文/理0 招生省份0 2020录取分数0 2019录取分数0 2018录取分数0 2017录取分数0 2016录取分数0 近五年平均录取分数0 dtype: int64

2.8 数据集描述性信息
describe = df.describe() print(describe)

结果
ID学校编号近五年平均录取分数 count46927.00000046927.00000046927.000000 mean35691.4530231151.838536394.217988 std25234.788519814.018187118.507112 min0.0000001.000000106.000000 25%13472.500000435.000000294.500000 50%29870.000000964.000000405.000000 75%60667.0000001957.500000480.000000 max82484.0000002661.000000870.333333

3. 数据分析 3.1 统计C9联盟近五年在鄂招生分数
from matplotlib.pyplot import MultipleLocator universityPart = ['Peking University','Tsinghua University','Zhejiang University','Shanghai Jiao Tong University','Nanjing University','Xi\'an Jiaotong University','China University of Technology','Wuhan University','Huazhong University of Science and Technology'] universityPartZh = ['北京大学','清华大学','浙江大学','上海交通大学','南京大学','西安交通大学','中国科学技术大学','武汉大学','华中科技大学'] year = [2020,2019,2018,2017,2016] scores = np.zeros([len(universityPartZh),5],dtype=int,order='C') for i in range(len(universityPartZh)): for j in range(46927): if (df['学校'][j] == universityPartZh[i]) & (df['招生省份'][j] == '湖北'): for k in range(5,10): if df.iloc[j,k]=='------': # 处理异常值 scores[i,k-5] = df.iloc[j,10] else: scores[i,k-5 ] = df.iloc[j,k] for i in range(len(universityPartZh)): print(universityPartZh[i],':',scores[i])

结果
北京大学 : [687 688 695 693 690] 清华大学 : [687 683 663 690 679] 浙江大学 : [673 674 651 659 664] 上海交通大学 : [687 687 681 671 681] 南京大学 : [670 657 651 671 653] 西安交通大学 : [636 624 609 632 612] 中国科学技术大学 : [657 674 663 658 663] 武汉大学 : [641 637 626 637 631] 华中科技大学 : [644 632 638 612 633]

3.2 中国和武汉最顶尖的两所学校的分数变化
for i in range(2): plt.plot(year,scores[i].tolist(),'o--',label=universityPart[i]) # 设置数字标签 for a, b in zip(year, scores[i].tolist()): plt.text(a, b, b, ha='center', va='bottom', fontsize=8) plt.legend(); plt.title('Two of China\'s Top Universities') x_major_locator=MultipleLocator(1) y_major_locator=MultipleLocator(10) # 把y轴的刻度间隔设置为20,并存在变量里 ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # 把y轴的主刻度设置为10的倍数 plt.show()for i in range(7,9): plt.plot(year,scores[i].tolist(),'o--',label=universityPart[i]) for a, b in zip(year, scores[i].tolist()): plt.text(a, b, b, ha='center', va='bottom', fontsize=8) plt.legend(); plt.title('Two of Wuhan\'s Top Universities') x_major_locator=MultipleLocator(1) y_major_locator=MultipleLocator(10) # 把y轴的刻度间隔设置为20,并存在变量里 ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # 把y轴的主刻度设置为10的倍数 plt.show()

中国顶尖的两所学校
数据集汇总|数据集(高考录取分数)
文章图片

结论
2018年时,清华大学录取分数线较往年偏低;而北京大学录取分数线几乎每年持平,2019年因为试卷难度较大,分数线较低。
武汉顶尖的两所学校
数据集汇总|数据集(高考录取分数)
文章图片

结论
2017年和2019年因为试卷难度较大,故武大华科在鄂录取分数线较低。
横轴为录取年份,纵轴为录取分数
3.3 统计在每个省份招生的学校数目
import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei']# 指定默认字体:解决plot不能显示中文问题 mpl.rcParams['axes.unicode_minus'] = False numCollegeEnrollPerProvince=df['招生省份'].value_counts() print(numCollegeEnrollPerProvince) province = ['河南','安徽','甘肃','山西','四川','山东','河北','贵州','内蒙古','云南','湖北','广西','广东','湖南','重庆','辽宁','陕西','江西','新疆','福建','黑龙江','吉林','浙江','宁夏','江苏','青海','海南','天津','西藏','上海','北京'] plt.plot(range(1,len(province)+1),numCollegeEnrollPerProvince,'ro-') plt.title('Total Numbers of Universitys Enrolled Per Province') plt.xticks(range(1,len(province)+1),province,rotation=90) plt.ylabel('Counts') plt.show()

结果
河南2056 安徽1977 甘肃1921 山西1915 四川1854 山东1783 河北1753 贵州1733 内蒙古1720 云南1698 湖北1698 广西1674 广东1636 湖南1630 重庆1621 辽宁1604 陕西1595 江西1579 新疆1554 福建1548 黑龙江1495 吉林1427 浙江1381 宁夏1324 江苏1152 青海1128 海南1053 天津956 西藏903 上海796 北京763 Name: 招生省份, dtype: int64

绘图
数据集汇总|数据集(高考录取分数)
文章图片

3.4 统计武汉大学在每个省份招生的录取平均分数
averageScores = [] for i in range(len(province)): for j in range(46927): if (df['学校'][j] == '武汉大学') & (df['招生省份'][j] == province[i]): averageScores.append(df['近五年平均录取分数'][j]) plt.plot(list(range(1,len(province)+1)),averageScores,'o-') plt.title('The Average Admission Scores of Wuhan University in Each Province') plt.xticks(range(1,len(province)+1),province,rotation=90) plt.ylabel('score') plt.show()

图示
数据集汇总|数据集(高考录取分数)
文章图片

结论
由于上海江苏的招录模式和其它地区不同,故在图中录取分数偏低;海南因为地理位置偏远,招录模式需要与当地自然灾害发生频率相适应,故在图中显示为异常点。
4. 完整代码
# 导包 import numpy as np import matplotlib.pyplot as plt import pandas as pd import os import warnings warnings.filterwarnings('ignore')# 读取数据 df = pd.read_csv('高考录取分数数据集.csv')# 预览数据 print(df.head())# 规范字段名称 df=df.rename(columns={ '录取分数1':'2020录取分数','录取分数2':'2019录取分数','录取分数3':'2018录取分数','录取分数4':'2017录取分数','录取分数5':'2016录取分数','平均分数':'近五年平均录取分数'})# 查看数据基本信息 df.info()# 查看重复值 print(df.duplicated().sum())# 查看缺失值 print(df.isnull().sum())# 数据集描述性信息 describe = df.describe() print(describe)# 统计北京大学、清华大学、浙江大学、上海交通大学、南京大学、西安交通大学、中国科学技术大学、武汉大学、华中科技大学近五年在鄂招生分数变化 from matplotlib.pyplot import MultipleLocator universityPart = ['Peking University','Tsinghua University','Zhejiang University','Shanghai Jiao Tong University','Nanjing University','Xi\'an Jiaotong University','China University of Technology','Wuhan University','Huazhong University of Science and Technology'] universityPartZh = ['北京大学','清华大学','浙江大学','上海交通大学','南京大学','西安交通大学','中国科学技术大学','武汉大学','华中科技大学'] year = [2020,2019,2018,2017,2016] scores = np.zeros([len(universityPartZh),5],dtype=int,order='C') for i in range(len(universityPartZh)): for j in range(46927): if (df['学校'][j] == universityPartZh[i]) & (df['招生省份'][j] == '湖北'): for k in range(5,10): if df.iloc[j,k]=='------': # 处理异常值 scores[i,k-5] = df.iloc[j,10] else: scores[i,k-5 ] = df.iloc[j,k] for i in range(len(universityPartZh)): print(universityPartZh[i],':',scores[i])for i in range(2): plt.plot(year,scores[i].tolist(),'o--',label=universityPart[i]) # 设置数字标签 for a, b in zip(year, scores[i].tolist()): plt.text(a, b, b, ha='center', va='bottom', fontsize=8) plt.legend(); plt.title('Two of China\'s Top Universities') x_major_locator=MultipleLocator(1) y_major_locator=MultipleLocator(10) # 把y轴的刻度间隔设置为20,并存在变量里 ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # 把y轴的主刻度设置为10的倍数 plt.show()for i in range(7,9): plt.plot(year,scores[i].tolist(),'o--',label=universityPart[i]) for a, b in zip(year, scores[i].tolist()): plt.text(a, b, b, ha='center', va='bottom', fontsize=8) plt.legend(); plt.title('Two of Wuhan\'s Top Universities') x_major_locator=MultipleLocator(1) y_major_locator=MultipleLocator(10) # 把y轴的刻度间隔设置为20,并存在变量里 ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # 把y轴的主刻度设置为10的倍数 plt.show()# 统计在每个省份招生的学校数目 import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei']# 指定默认字体:解决plot不能显示中文问题 mpl.rcParams['axes.unicode_minus'] = False numCollegeEnrollPerProvince=df['招生省份'].value_counts() print(numCollegeEnrollPerProvince) province = ['河南','安徽','甘肃','山西','四川','山东','河北','贵州','内蒙古','云南','湖北','广西','广东','湖南','重庆','辽宁','陕西','江西','新疆','福建','黑龙江','吉林','浙江','宁夏','江苏','青海','海南','天津','西藏','上海','北京'] plt.plot(range(1,len(province)+1),numCollegeEnrollPerProvince,'ro-') plt.title('Total Numbers of Universitys Enrolled Per Province') plt.xticks(range(1,len(province)+1),province,rotation=90) plt.ylabel('Counts') plt.show()# 统计武汉大学在每个省份招生的录取平均分数 averageScores = [] for i in range(len(province)): for j in range(46927): if (df['学校'][j] == '武汉大学') & (df['招生省份'][j] == province[i]): averageScores.append(df['近五年平均录取分数'][j]) plt.plot(list(range(1,len(province)+1)),averageScores,'o-') plt.title('The Average Admission Scores of Wuhan University in Each Province') plt.xticks(range(1,len(province)+1),province,rotation=90) plt.ylabel('score') plt.show()

    推荐阅读