文章目录
大家好,我是 Python当打之年
软科中国大学排以专业、客观、透明的优势赢得了高等教育领域和社会的广泛关注和认可,本次将利用Python对我国大学排名和分布情况进行一番研究。
涉及到的内容:
Pandas — 数据处理
Pyecharts — 数据可视化
🏳️🌈 1. 导入模块
from pyecharts.charts import Map
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts import options as opts
import pandas as pd
🏳️🌈 2. Pandas数据处理
2.1 读取数据
df = pd.read_csv('中国大学综合排名2021.csv', encoding='gb2312')
df.head()
2.2 查看表格数据类型
df.dtypes
2.3 查看表格数据描述
df.describe()
可以看到数据一个有582条,升/降数据只有566条,办学层次、学科水平。。。等只有100条,存在数据缺失。
2.4 查看表格缺失数据
df.isnull().sum()
2.5 填充某一列缺失数据
填充升/降数据,以填充0为例:
df['升/降'].fillna(0, inplace=True)
df.isnull().sum()
2.6 一次性填充所有缺失数据
df.fillna(0, inplace=True)
df.describe()
2.7 统计所有排名未改变的学校
df[df['升/降']==0]
2.8 统计前50名中排名下降的学校
df.loc[(df['排名']<50) & (df['升/降']<0),:]
2.9 统计各省市大学数量
g = df.groupby('省市')
# 各省份大学数量
df_counts = g.count()['排名']
df0 = df_counts.copy()
df0.sort_values(ascending=False, inplace=True)
2.10 各省市大学平均分排序
df_means0 = g.mean()['总分']
df_means = df_means0.round(2)
df1 = pd.concat([df_counts, df_means], join='outer', axis=1)
df1.columns = ['数量', '平均分']
df1.sort_values(by=['平均分'], ascending=False, inplace=True)
🏳️🌈 3. Pyecharts数据可视化
3.1 各省市大学数量和平均分柱状图(横向)
bar0 = (
Bar()
.add_xaxis(d1)
.add_yaxis('数量', d2)
.add_yaxis('平均分数', d3)
.set_global_opts(
title_opts=opts.TitleOpts(title='中国大学排名'),
yaxis_opts=opts.AxisOpts(name='量'),
xaxis_opts=opts.AxisOpts(name='省份'),
)
)
效果:
3.2 各省市大学数量和平均分柱状图(纵向)
bar1 = (
Bar()
.add_xaxis(d1)
.add_yaxis('数量', d2)
.add_yaxis('平均分数', d3)
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position='right'))
.set_global_opts(
title_opts=opts.TitleOpts(title='中国大学排名'),
yaxis_opts=opts.AxisOpts(name='省份'),
xaxis_opts=opts.AxisOpts(name='量'),
)
)
效果:
3.3 各省市大学数量玫瑰图
c0 = (
Pie()
.add(
'',
[list(z) for z in zip(name, count)],
radius=['20%', '60%'],
center=['50%', '65%'],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=False),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c}'))
)
效果:
3.4 各省市大学数量南丁格尔玫瑰图
c1 = (
Pie()
.add('', [list(z) for z in zip(provinces, num)],
radius=['30%', '105%'],
rosetype='area'
)
.set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),
legend_opts=opts.LegendOpts(is_show=False),
toolbox_opts=opts.ToolboxOpts())
.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,
formatter='{b}: {c}', font_style='italic',
font_weight='bold', font_family='Microsoft YaHei'
))
)
效果:
3.5 各省市大学数量地图分布
m = (
Map()
.add('', [list(z) for z in zip(name, count)], 'china')
.set_global_opts(
title_opts=opts.TitleOpts(title='中国大学排名'),
visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),
)
)
效果:
- 大学数量较多的省市:江苏、山东、河南、河北、北京、辽宁 、陕西、四川 、广东 、湖南
、湖北、浙江等地(只看学校数量),后期探索可根据学校排名 - 排名前20的大学较前一年的波动较小(这也符合常理,毕竟前几的学校都是多年沉淀下来的)
- 西部地区大学数量较少
- 本数据集不包含港、澳、台大学(网站未统计)
🏳️🌈 4. 可视化项目源码+数据
网盘: https://pan.baidu.com/doc/share/Olj4d~aKuXT7AF0cq01MrQ-437060019167360
提取码: pyra
以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享(注明出处)让更多人知道。