2021中国大学综合排名分析+可视化

在这里插入图片描述

Author: 无聊大侠hello word
有一点思考,有一点想法,有一点理性!
CSDN@无聊大侠hello word

前言

📋前言📋
💝博客:【无聊大侠hello word】💝
✍本文由在下【无聊大侠hello word】原创,首发于CSDN✍

PyeCharts官方文档(中文)

官方文档(中文):https://pyecharts.org/#/zh-cn/intro

1. 导入模块

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Map

2.读取数据

查看数据前五条数据:

 df = pd.read_csv('中国大学综合排名2021.csv', encoding='gb2312')
    print(df.head().to_string())

在这里插入图片描述

3.查看表格数据类型

print(df.dtypes)

在这里插入图片描述查看表格数据描述:

print(df.describe())  # 可以看到数据一个有582条,升/降数据只有566条,办学层次、学科水平。。。等只有100条,存在数据缺失。

4. 统计空格数据

print(df.isnull().sum())

在这里插入图片描述

5. 以0填充所有缺失数据

   df.fillna(0, inplace=True)
   # print(df.isnull().sum())

在这里插入图片描述

统计数据

a.统计前50名中排名下降的学校

# 统计前50名中排名下降( n < 0 )的学校
print(df.loc[(df['排名'] < 50) & (df['升/降'] < 0)].head().to_string())

在这里插入图片描述

b.统计各省市大学数量

  g = df.groupby('省市')
  # 各省市大学数量
  df_counts = g.count()['排名']  # 出现次数
  df0 = df_counts.copy()
  df0.sort_values(ascending=False, inplace=True)
  print(df0)

在这里插入图片描述

c.统计各省市大学平均分排序

 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)

可视化

a. 各省市大学数量和平均分柱状图(横向)

 x_data = df1.index.tolist()
    y_data1 = df1['数量'].values.tolist()
    y_data2 = df1['平均分'].values.tolist()
    # 实列化柱状图对象
    bar1 = (
        Bar()
            .add_xaxis(xaxis_data=x_data)
            .add_yaxis(series_name='数量', y_axis=y_data1)
            .add_yaxis(series_name='平均分', y_axis=y_data2)
            .set_global_opts(
            title_opts=opts.TitleOpts(title='中国大学排名'),
            xaxis_opts=opts.AxisOpts(name='省份'),
            yaxis_opts=opts.AxisOpts(name='量')
        )
    )
    # 渲染
    bar1.render('中国大学排名(横向).html')

在这里插入图片描述

b. 各省市大学数量和平均分柱状图(纵向)

bar2 = (
        Bar()
            .add_xaxis(xaxis_data=x_data)
            .add_yaxis(series_name='数量', y_axis=y_data1)
            .add_yaxis(series_name='平均分', y_axis=y_data2)
            .set_global_opts(
            title_opts=opts.TitleOpts(title='中国大学排名'),
            xaxis_opts=opts.AxisOpts(name='省份'),
            yaxis_opts=opts.AxisOpts(name='量'),
        )
            .reversal_axis()  # 反转轴
            .set_series_opts(
            label_opts=opts.LabelOpts(position='right')  # 把值反转
        )
    )
    # 渲染
    bar2.render('中国大学排名(纵向).html')

在这里插入图片描述

c. 各省市大学数量(玫瑰图)

 name = df_counts.index.tolist()
    count = df_counts.values.tolist()
    # 实列化饼图对象
    pie1 = (
        Pie()
            .add(
            series_name='',
            data_pair=[list(z) for z in zip(name, count)],
            # 半径
            radius=['20%', '60%'],
            # 里圆心距离
            center=['50%', '65%'],
            # radius:扇区圆心角展现数据的百分比,半径展现数据的大小
            # area:所有扇区圆心角相同,仅通过半径展现数据大小
            rosetype='radius',
            label_opts=opts.LabelOpts(is_show=False)
        )
            .set_series_opts(
            label_opts=opts.LabelOpts(formatter='{b} : {c}')
        )
    )
    # 渲染
    pie1.render('各省市大学数量(玫瑰图).html')

在这里插入图片描述

d. 各省市大学数量(南丁格尔玫瑰图)

 provinces = df0.index.tolist()
    num = df0.values.tolist()
    # 实列化饼图对象
    pie2 = (
        Pie()
            .add(
            series_name='',
            data_pair=[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),
            tooltip_opts=opts.TitleOpts(),
        )
            .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'
            )
        )
    )
    # 渲染
    pie2.render('各省市大学数量(南丁格尔玫瑰图).html')

在这里插入图片描述

e. 各省市大学数量分布(地图)

 name = df0.index.tolist()
    count = df0.values.tolist()

    # 实列化Map对象
    map = (
        Map()
            .add(series_name='', data_pair=[list(z) for z in zip(name, count)], maptype='china')
            .set_global_opts(
            title_opts=opts.TitleOpts(title='中国大学排名'),
            visualmap_opts=opts.VisualMapOpts(
                max_=40,
                # 分几段
                split_number=8,
                # 是否分段
                is_piecewise=True,
            ),

        )
    )
    # 渲染
    map.render('各省市大学数量分布(地图).html')

在这里插入图片描述

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值