发布时间:2023-08-19 21:28:11 人气:
大家好,我是 Python当打之年
软科中国大学排以专业、客观、透明的优势赢得了高等教育领域和社会的广泛关注和认可,本次将利用Python对我国大学排名和分布情况进行一番研究。
涉及到的内容:
Pandas — 数据处理
Pyecharts — 数据可视化
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.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.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 各省市大学数量南丁格尔玫瑰图
1=(
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),
)
)
更多内容(公众号:Python当打之年)
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、收藏也可以分享让更多人知道
推荐阅读
可视化 | 用Python分析近5000个旅游景点,告诉你假期应该去哪玩
爬虫 | Python爬取豆瓣电影Top250 + 数据可视化
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!
技巧 | 20个Pycharm最实用最高效的快捷键(动态展示)
技巧 | 5000字超全解析Python三种格式化输出方式【% / format / f-string】