头部首发优志愿头部u_sign生成与TLS指纹处理! + 数据可视化技术讲解【Python爬虫】

目录

[针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取](#针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取)

找对应得数据包

请求发现数据有加密

发现加密参数

搜索加密参数,好进行分析

分析过程

数据可视化


针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取

首先进行鼠标右键,进行数据抓包

找对应得数据包

请求发现数据有加密

发现加密参数

搜索加密参数,好进行分析

分析过程





In [2]:

!pip install jsonpath

Collecting jsonpath
  Downloading jsonpath-0.82.2.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: jsonpath
  Building wheel for jsonpath (setup.py) ... done
  Created wheel for jsonpath: filename=jsonpath-0.82.2-py3-none-any.whl size=6724 sha256=3db960d7ff6f0bb132346f0e72e00349a7f6156100fc98c35ffda5cee786b2bf
  Stored in directory: /home/mw/.cache/pip/wheels/2c/2a/fa/87e26ec807b9a21dd0464eb1319cc3ad51b0c9e505fe6b7396
Successfully built jsonpath
Installing collected packages: jsonpath
Successfully installed jsonpath-0.82.2

import requests
import json
import hashlib
import jsonpath
import pandas as pd
for i in range(1, 2):
    data = '{"keyword":"","provincenames":[],"naturetypes":[],"edulevel":"","categories":[],"features":[],"pageindex":%s,"pagesize":20,"sort":11}&9sasji5owng41irkisvtjhlxhmrysrp1' % i
    md5 = hashlib.md5(data.encode())
    # md5.update(content.encode('utf-8'))
    sign = md5.hexdigest()
    print(sign)
    headers = {
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        "Connection": "keep-alive",
        "Content-Type": "application/json",
        "Origin": "https://pv4y-pc.youzy.cn",
        "Referer": "https://pv4y-pc.youzy.cn/",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "same-site",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "u-sign": sign,
        "u-token": ""
    }
    url = "https://uwf7de983aad7a717eb.youzy.cn/youzy.dms.basiclib.api.college.query"
    data = {"keyword":"","provinceNames":[],"natureTypes":[],"eduLevel":"","categories":[],"features":[],"pageIndex":i,"pageSize":20,"sort":11}
    data = json.dumps(data, separators=(',', ':'))
    response = requests.post(url, headers=headers, data=data).json()
    # print(resps)
    # 学校名称
    data_name = jsonpath.jsonpath(response, '$..cnName')
    print(data_name)
    # 学校类型
    data_shape = jsonpath.jsonpath(response, '$..categories')
    # 综合指数
    data_comScore = jsonpath.jsonpath(response, '$..comScore')
    # 是不是本科
    data_eduLevel = jsonpath.jsonpath(response, '$..eduLevel')
    # 学校情况
    data_features = jsonpath.jsonpath(response, '$..features')
    # 排名
    data_ranking = jsonpath.jsonpath(response, '$..ranking')
    # 热度
    data_hits = jsonpath.jsonpath(response, '$..hits')
    # 部门
    data_belong = jsonpath.jsonpath(response, '$..belong')
    data = {'学校名称': data_name, '学校类型': data_shape, '综合指数': data_comScore, '学历': data_eduLevel,
            '学校情况':  data_features, '排名': data_ranking, '热度': data_hits,
            '部门': data_belong}
    df = pd.DataFrame(pd.DataFrame.from_dict(data, orient='index').values.T, columns=list(data.keys()))
    print(df)
    # df.to_csv("中国院校统计.csv",index=False)

643ff9499febb3ee34c95ffe0bb29cb0
['清华大学', '北京大学', '北京大学医学部', '中国科学院大学', '复旦大学', '复旦大学上海医学院', '上海交通大学', '上海交通大学医学院', '中国科学技术大学', '中国人民大学', '中国人民大学(苏州校区)', '浙江大学', '浙江大学医学院', '南京大学', '北京航空航天大学', '北京航空航天大学中法航空学院', '武汉大学', '同济大学', '南开大学', '中国人民解放军国防科技大学']
              学校名称  学校类型   综合指数   学历                      学校情况  排名       热度  \
0             清华大学  [综合]  93.59  ben  [985, 211, 国重点, 保研, 双一流]   1  1378946   
1             北京大学  [综合]  92.13  ben  [985, 211, 国重点, 保研, 双一流]   2  2155577   
2          北京大学医学部  [医药]  92.13  ben  [985, 211, 国重点, 保研, 双一流]   2   439830   
3          中国科学院大学  [综合]  79.95  ben            [国重点, 保研, 双一流]   3   474549   
4             复旦大学  [综合]  83.73  ben  [985, 211, 国重点, 保研, 双一流]   4  1091717   
5        复旦大学上海医学院  [医药]  83.73  ben  [985, 211, 国重点, 保研, 双一流]   4   321950   
6           上海交通大学  [综合]  84.72  ben  [985, 211, 国重点, 保研, 双一流]   5   934308   
7        上海交通大学医学院  [医药]  84.72  ben  [985, 211, 国重点, 保研, 双一流]   5   306197   
8         中国科学技术大学  [综合]  79.59  ben  [985, 211, 国重点, 保研, 双一流]   6   540224   
9           中国人民大学  [综合]  79.92  ben  [985, 211, 保研, 国重点, 双一流]   7   895950   
10    中国人民大学(苏州校区)  [综合]  79.92  ben       [985, 211, 保研, 双一流]   7   448989   
11            浙江大学  [综合]  86.16  ben  [985, 211, 国重点, 保研, 双一流]   8  1102871   
12         浙江大学医学院  [医药]  86.16  ben      [985, 211, 国重点, 双一流]   8   298237   
13            南京大学  [综合]  80.51  ben  [985, 211, 国重点, 保研, 双一流]   9  1068208   
14        北京航空航天大学  [理工]  77.19  ben       [985, 211, 保研, 双一流]  10   668746   
15  北京航空航天大学中法航空学院    []  77.19  ben                        []  10    11630   
16            武汉大学  [综合]  79.82  ben  [985, 211, 国重点, 保研, 双一流]  11  1167221   
17            同济大学  [综合]  77.02  ben  [985, 211, 国重点, 保研, 双一流]  12   694969   
18            南开大学  [综合]  76.11  ben  [985, 211, 国重点, 保研, 双一流]  13   725994   
19   中国人民解放军国防科技大学  [军事]  73.59  ben      [985, 211, 国重点, 双一流]  14   717849   

              部门  
0            教育部  
1            教育部  
2            教育部  
3            中科院  
4            教育部  
5            教育部  
6            教育部  
7            教育部  
8            中科院  
9            教育部  
10           教育部  
11           教育部  
12          浙江大学  
13           教育部  
14           工信部  
15                
16           教育部  
17           教育部  
18           教育部  
19  中国共产党中央军事委员会  

数据可视化

In [29]:

import pandas as pd
data=pd.read_csv("/home/mw/input/yuanxiao7383/中国院校统计.csv")
data

Out[29]:

| 学校名称 | 学校类型 | 综合指数 | 学历 | 学校情况 | 排名 | 热度 | 部门 |
| 0 | 清华大学 | ['综合'] | 93.59 | ben | ['985', '211', '国重点', '保研', '双一流'] | 1 | 1377703 | 教育部 |
| 1 | 北京大学 | ['综合'] | 92.13 | ben | ['985', '211', '国重点', '保研', '双一流'] | 2 | 2155049 | 教育部 |
| 2 | 北京大学医学部 | ['医药'] | 92.13 | ben | ['985', '211', '国重点', '保研', '双一流'] | 2 | 439644 | 教育部 |
| 3 | 中国科学院大学 | ['综合'] | 79.95 | ben | ['国重点', '保研', '双一流'] | 3 | 474239 | 中科院 |
| 4 | 复旦大学 | ['综合'] | 83.73 | ben | ['985', '211', '国重点', '保研', '双一流'] | 4 | 1091254 | 教育部 |
| 5 | 复旦大学上海医学院 | ['医药'] | 83.73 | ben | ['985', '211', '国重点', '保研', '双一流'] | 4 | 321828 | 教育部 |
| 6 | 上海交通大学 | ['综合'] | 84.72 | ben | ['985', '211', '国重点', '保研', '双一流'] | 5 | 933901 | 教育部 |
| 7 | 上海交通大学医学院 | ['医药'] | 84.72 | ben | ['985', '211', '国重点', '保研', '双一流'] | 5 | 306102 | 教育部 |
| 8 | 中国科学技术大学 | ['综合'] | 79.59 | ben | ['985', '211', '国重点', '保研', '双一流'] | 6 | 539918 | 中科院 |
| 9 | 中国人民大学 | ['综合'] | 79.92 | ben | ['985', '211', '保研', '国重点', '双一流'] | 7 | 895604 | 教育部 |
| 10 | 中国人民大学(苏州校区) | ['综合'] | 79.92 | ben | ['985', '211', '保研', '双一流'] | 7 | 448698 | 教育部 |
| 11 | 浙江大学 | ['综合'] | 86.16 | ben | ['985', '211', '国重点', '保研', '双一流'] | 8 | 1102369 | 教育部 |
| 12 | 浙江大学医学院 | ['医药'] | 86.16 | ben | ['985', '211', '国重点', '双一流'] | 8 | 298159 | 浙江大学 |
| 13 | 南京大学 | ['综合'] | 80.51 | ben | ['985', '211', '国重点', '保研', '双一流'] | 9 | 1067571 | 教育部 |
| 14 | 北京航空航天大学 | ['理工'] | 77.19 | ben | ['985', '211', '保研', '双一流'] | 10 | 668359 | 工信部 |
| 15 | 北京航空航天大学中法航空学院 | [] | 77.19 | ben | [] | 10 | 11509 | NaN |
| 16 | 武汉大学 | ['综合'] | 79.82 | ben | ['985', '211', '国重点', '保研', '双一流'] | 11 | 1166705 | 教育部 |
| 17 | 同济大学 | ['综合'] | 77.02 | ben | ['985', '211', '国重点', '保研', '双一流'] | 12 | 694605 | 教育部 |
| 18 | 南开大学 | ['综合'] | 76.11 | ben | ['985', '211', '国重点', '保研', '双一流'] | 13 | 725646 | 教育部 |
| 19 | 中国人民解放军国防科技大学 | ['军事'] | 73.59 | ben | ['985', '211', '国重点', '双一流'] | 14 | 717346 | 中国共产党中央军事委员会 |
| 20 | 北京理工大学 | ['理工'] | 74.96 | ben | ['985', '211', '保研', '双一流'] | 15 | 669865 | 工信部 |
| 21 | 北京师范大学 | ['师范'] | 76.59 | ben | ['985', '211', '保研', '国重点', '双一流'] | 16 | 698563 | 教育部 |
| 22 | 北京师范大学(珠海校区) | ['综合'] | 76.59 | ben | ['985', '211', '国重点', '保研', '双一流'] | 16 | 282745 | 教育部 |
| 23 | 哈尔滨工业大学 | ['理工'] | 76.45 | ben | ['985', '211', '国重点', '保研', '双一流'] | 17 | 724788 | 工信部 |
| 24 | 哈尔滨工业大学(威海) | ['理工'] | 76.45 | ben | ['985', '211', '国重点', '保研', '双一流'] | 17 | 506924 | 工信部 |
| 25 | 哈尔滨工业大学(深圳) | ['理工'] | 76.45 | ben | ['985', '211', '国重点', '保研', '双一流'] | 17 | 253199 | 工信部 |
| 26 | 西安交通大学 | ['综合'] | 77.40 | ben | ['985', '211', '国重点', '保研', '双一流'] | 18 | 879613 | 教育部 |
| 27 | 东南大学 | ['综合'] | 76.03 | ben | ['985', '211', '国重点', '保研', '双一流'] | 19 | 776147 | 教育部 |
| 28 | 东南大学医学院 | ['医药'] | 76.03 | ben | ['985', '211', '国重点', '保研', '双一流'] | 19 | 161457 | 教育部 |
| 29 | 华中科技大学 | ['综合'] | 77.98 | ben | ['985', '211', '国重点', '保研', '双一流'] | 20 | 1055994 | 教育部 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1570 | 阜阳职业技术学院 | ['理工'] | 0.00 | zhuan | [] | 0 | 27130 | 省政府 |
| 1571 | 湖南信息职业技术学院 | ['理工'] | 0.00 | zhuan | ['省重点'] | 0 | 32456 | 省政府 |
| 1572 | 秦皇岛职业技术学院 | ['理工'] | 0.00 | zhuan | [] | 0 | 90203 | 省政府 |
| 1573 | 浙江纺织服装职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 24877 | 省政府 |
| 1574 | 广东农工商职业技术学院 | ['综合'] | 0.00 | zhuan | ['省属'] | 0 | 30821 | 省政府 |
| 1575 | 江西旅游商贸职业学院 | ['财经'] | 0.00 | zhuan | ['省重点'] | 0 | 26661 | 省政府 |
| 1576 | 唐山职业技术学院 | ['综合'] | 0.00 | zhuan | ['省属'] | 0 | 41608 | 省政府 |
| 1577 | 沈阳航空职业技术学院 | ['理工'] | 0.00 | zhuan | ['省重点'] | 0 | 27589 | 省政府 |
| 1578 | 七台河职业学院 | ['综合'] | 0.00 | zhuan | ['省属'] | 0 | 19431 | 省政府 |
| 1579 | 甘肃有色冶金职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 19093 | 省政府 |
| 1580 | 宁夏职业技术学院 | ['综合'] | 0.00 | zhuan | ['省属'] | 0 | 27452 | 自治区政府 |
| 1581 | 内蒙古警察职业学院 | ['政法'] | 0.00 | zhuan | ['省属'] | 0 | 26005 | 自治区政府 |
| 1582 | 天津海运职业学院 | ['综合'] | 0.00 | zhuan | ['省重点'] | 0 | 47443 | 市政府 |
| 1583 | 广东工贸职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 33165 | 省政府 |
| 1584 | 湘潭医卫职业技术学院 | ['医药'] | 0.00 | zhuan | ['省属'] | 0 | 33889 | 省政府 |
| 1585 | 黑龙江建筑职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 32713 | 省政府 |
| 1586 | 温州职业技术学院 | ['综合'] | 0.00 | zhuan | [] | 0 | 37202 | 省政府 |
| 1587 | 浙江东方职业技术学院 | ['综合'] | 0.00 | zhuan | [] | 0 | 25348 | 省教育厅 |
| 1588 | 辽宁建筑职业学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 34613 | 省政府 |
| 1589 | 邢台医学高等专科学校 | ['医药'] | 0.00 | zhuan | [] | 0 | 56330 | 省政府 |
| 1590 | 铁岭师范高等专科学校 | ['师范'] | 0.00 | zhuan | ['省属'] | 0 | 32921 | 省政府 |
| 1591 | 广西水利电力职业技术学院 | ['理工'] | 0.00 | zhuan | [] | 0 | 25498 | 自治区政府 |
| 1592 | 武汉外语外事职业学院 | ['综合'] | 0.00 | zhuan | [] | 0 | 24622 | 省教育厅 |
| 1593 | 福建信息职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 24146 | 省政府 |
| 1594 | 平顶山工业职业技术学院 | ['理工'] | 0.00 | zhuan | ['省属'] | 0 | 27876 | 省政府 |
| 1595 | 广东省外语艺术职业学院 | ['艺术'] | 0.00 | zhuan | ['省属'] | 0 | 39208 | 省政府 |
| 1596 | 长沙航空职业技术学院 | ['理工'] | 0.00 | zhuan | ['省重点'] | 0 | 112407 | 空军装备部 |
| 1597 | 桂林师范高等专科学校 | ['师范'] | 0.00 | zhuan | [] | 0 | 26748 | 自治区政府 |
| 1598 | 山东商务职业学院 | ['综合'] | 0.00 | zhuan | ['省属'] | 0 | 43707 | 省政府 |

1599 延边职业技术学院 ['理工'] 0.00 zhuan [] 0 23005 省政府

In [30]:

data.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1600 entries, 0 to 1599
Data columns (total 8 columns):
学校名称    1600 non-null object
学校类型    1600 non-null object
综合指数    1600 non-null float64
学历      1600 non-null object
学校情况    1600 non-null object
排名      1600 non-null int64
热度      1600 non-null int64
部门      1588 non-null object
dtypes: float64(1), int64(2), object(5)
memory usage: 100.1+ KB

In [31]:

python 复制代码
import jieba
# jieba.load_userdict('addwords.txt')
title_cut = []
for i in data.学校情况:
    j = jieba.lcut(i)
    title_cut.append(j)
python 复制代码
Building prefix dict from the default dictionary ...
Dumping model to file cache /tmp/jieba.cache
Loading model cost 0.971 seconds.
Prefix dict has been built succesfully.

In [32]:

python 复制代码
cut_words = jieba.lcut(str(data['学校情况'].values), cut_all = False)

In [33]:

python 复制代码
file_path = open(r'/home/mw/input/data8378/stopwords.txt',encoding='utf-8')
stop_words = file_path.read()

In [34]:

python 复制代码
# 新建一个空列表,用于存储删除停用词后的数据
new_data = []
for word in cut_words:
    if word not in stop_words:
        new_data.append(word)
print(new_data)
python 复制代码
['[', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '...', "'", '[', ']', "'", '"', '[', "'", '省属', "'", ']', '"', "'", '[', ']', "'", ']']

In [35]:

python 复制代码
from nltk import FreqDist
freq_list = FreqDist(new_data)
# 返回词语列表
most_common_words = freq_list.most_common()
print(most_common_words)
python 复制代码
[("'", 36), ('"', 8), ('[', 7), (']', 7), ('985', 3), ('211', 3), ('国', 3), ('重点', 3), ('保研', 3), ('双', 3), ('一流', 3), ('...', 1), ('省属', 1)]

In [36]:

python 复制代码
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
def wordcloud_base() -> WordCloud:
    c = (
        WordCloud()
        .add("", most_common_words, word_size_range=[20, 100])
        .set_global_opts(title_opts=opts.TitleOpts(title="美团标题标签可视化"))
    )
    return c

wd = wordcloud_base()
wd.render_notebook()

Out[36]:

In [25]:

python 复制代码
import numpy as np 
data["综合指数"] = data["综合指数"].astype(np.int64)
data.info()
python 复制代码
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1600 entries, 0 to 1599
Data columns (total 8 columns):
学校名称    1600 non-null object
学校类型    1600 non-null object
综合指数    1600 non-null int64
学历      1600 non-null object
学校情况    1600 non-null object
排名      1600 non-null int64
热度      1600 non-null int64
部门      1588 non-null object
dtypes: int64(3), object(5)
memory usage: 100.1+ KB

In [26]:

python 复制代码
data['学校类型']=data['学校类型'].apply(lambda x: x.replace('[', '').replace(']', ''))
data['学校类型']

Out[26]:

python 复制代码
0       '综合'
1       '综合'
2       '医药'
3       '综合'
4       '综合'
5       '医药'
6       '综合'
7       '医药'
8       '综合'
9       '综合'
10      '综合'
11      '综合'
12      '医药'
13      '综合'
14      '理工'
15          
16      '综合'
17      '综合'
18      '综合'
19      '军事'
20      '理工'
21      '师范'
22      '综合'
23      '理工'
24      '理工'
25      '理工'
26      '综合'
27      '综合'
28      '医药'
29      '综合'
        ... 
1570    '理工'
1571    '理工'
1572    '理工'
1573    '理工'
1574    '综合'
1575    '财经'
1576    '综合'
1577    '理工'
1578    '综合'
1579    '理工'
1580    '综合'
1581    '政法'
1582    '综合'
1583    '理工'
1584    '医药'
1585    '理工'
1586    '综合'
1587    '综合'
1588    '理工'
1589    '医药'
1590    '师范'
1591    '理工'
1592    '综合'
1593    '理工'
1594    '理工'
1595    '艺术'
1596    '理工'
1597    '师范'
1598    '综合'
1599    '理工'
Name: 学校类型, Length: 1600, dtype: object

In [27]:

python 复制代码
# 查看缺失值
data.isnull().any()

Out[27]:

python 复制代码
学校名称    False
学校类型    False
综合指数    False
学历      False
学校情况    False
排名      False
热度      False
部门       True
dtype: bool

In [28]:

python 复制代码
# 查看数据结构
data.describe()

Out[28]:

| | 综合指数 | 排名 | 热度 |
| count | 1600.000000 | 1600.000000 | 1.600000e+03 |
| mean | 47.107500 | 477.676875 | 1.650321e+05 |
| std | 25.032106 | 406.079676 | 1.851948e+05 |
| min | 0.000000 | 0.000000 | 2.730000e+03 |
| 25% | 55.000000 | 43.750000 | 5.205350e+04 |
| 50% | 57.000000 | 435.500000 | 9.286500e+04 |
| 75% | 60.000000 | 835.250000 | 2.108105e+05 |

max 93.000000 1235.000000 2.155049e+06

In [10]:

python 复制代码
data2 = data.groupby('学校名称')['综合指数'].agg(['mean', 'median'])
data2

Out[10]:

| | mean | median |
| 学校名称 | | |
| 七台河职业学院 | 0 | 0 |
| 三亚中瑞酒店管理职业学院 | 0 | 0 |
| 三亚学院 | 55 | 55 |
| 三峡大学 | 62 | 62 |
| 三峡大学科技学院 | 57 | 57 |
| 三明学院 | 58 | 58 |
| 三江学院 | 56 | 56 |
| 三门峡社会管理职业学院 | 0 | 0 |
| 三门峡职业技术学院 | 0 | 0 |
| 上海中侨职业技术大学 | 55 | 55 |
| 上海中医药大学 | 65 | 65 |
| 上海交通大学 | 84 | 84 |
| 上海交通大学医学院 | 84 | 84 |
| 上海体育大学 | 64 | 64 |
| 上海健康医学院 | 59 | 59 |
| 上海公安学院 | 0 | 0 |
| 上海兴伟学院 | 56 | 56 |
| 上海商学院 | 60 | 60 |
| 上海外国语大学 | 68 | 68 |
| 上海外国语大学贤达经济人文学院 | 55 | 55 |
| 上海大学 | 71 | 71 |
| 上海对外经贸大学 | 65 | 65 |
| 上海工程技术大学 | 61 | 61 |
| 上海师范大学 | 65 | 65 |
| 上海师范大学天华学院 | 56 | 56 |
| 上海应用技术大学 | 61 | 61 |
| 上海建桥学院 | 55 | 55 |
| 上海思博职业技术学院 | 0 | 0 |
| 上海戏剧学院 | 65 | 65 |
| 上海政法学院 | 64 | 64 |
| ... | ... | ... |
| 黄冈师范学院 | 59 | 59 |
| 黄冈职业技术学院 | 0 | 0 |
| 黄山学院 | 59 | 59 |
| 黄河交通学院 | 57 | 57 |
| 黄河科技学院 | 56 | 56 |
| 黄淮学院 | 57 | 57 |
| 黎明职业大学 | 0 | 0 |
| 黑河学院 | 56 | 56 |
| 黑龙江东方学院 | 55 | 55 |
| 黑龙江中医药大学 | 60 | 60 |
| 黑龙江八一农垦大学 | 58 | 58 |
| 黑龙江外国语学院 | 55 | 55 |
| 黑龙江大学 | 62 | 62 |
| 黑龙江工业学院 | 57 | 57 |
| 黑龙江工商学院 | 55 | 55 |
| 黑龙江工程学院 | 58 | 58 |
| 黑龙江工程学院昆仑旅游学院 | 55 | 55 |
| 黑龙江建筑职业技术学院 | 0 | 0 |
| 黑龙江科技大学 | 59 | 59 |
| 黑龙江财经学院 | 55 | 55 |
| 黔南民族师范学院 | 57 | 57 |
| 齐鲁医药学院 | 57 | 57 |
| 齐鲁工业大学 | 60 | 60 |
| 齐鲁师范学院 | 59 | 59 |
| 齐鲁理工学院 | 55 | 55 |
| 齐齐哈尔医学院 | 58 | 58 |
| 齐齐哈尔大学 | 58 | 58 |
| 齐齐哈尔工程学院 | 54 | 54 |
| 齐齐哈尔高等师范专科学校 | 0 | 0 |

龙岩学院 58 58

1600 rows × 2 columns

In [11]:

python 复制代码
data_brand=data2.sort_values(by='median', ascending=True).tail(10)
data_brand

Out[11]:

| | mean | median |
| 学校名称 | | |
| 南京大学 | 80 | 80 |
| 复旦大学上海医学院 | 83 | 83 |
| 复旦大学 | 83 | 83 |
| 上海交通大学 | 84 | 84 |
| 上海交通大学医学院 | 84 | 84 |
| 浙江大学 | 86 | 86 |
| 浙江大学医学院 | 86 | 86 |
| 北京大学医学部 | 92 | 92 |
| 北京大学 | 92 | 92 |

清华大学 93 93

In [12]:

python 复制代码
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (Bar()
       .add_xaxis(list(data_brand.index))
       .add_yaxis('',[int(i) for i in(round(data_brand['median']))])
        .set_global_opts(title_opts=opts.TitleOpts(title="中国大学综合指数概况", subtitle="中位数"),xaxis_opts=opts.AxisOpts(name_rotate=0,name="综合指数",axislabel_opts={"rotate":60}))

        )
bar.render_notebook()

Out[12]:

In [13]:

python 复制代码
data3 = data.groupby('学校名称')['热度'].agg(['mean', 'median'])
data3

Out[13]:

| | mean | median |
| 学校名称 | | |
| 七台河职业学院 | 19431 | 19431 |
| 三亚中瑞酒店管理职业学院 | 21755 | 21755 |
| 三亚学院 | 104658 | 104658 |
| 三峡大学 | 501787 | 501787 |
| 三峡大学科技学院 | 89985 | 89985 |
| 三明学院 | 98712 | 98712 |
| 三江学院 | 101231 | 101231 |
| 三门峡社会管理职业学院 | 20692 | 20692 |
| 三门峡职业技术学院 | 37561 | 37561 |
| 上海中侨职业技术大学 | 57802 | 57802 |
| 上海中医药大学 | 214334 | 214334 |
| 上海交通大学 | 933901 | 933901 |
| 上海交通大学医学院 | 306102 | 306102 |
| 上海体育大学 | 76233 | 76233 |
| 上海健康医学院 | 115812 | 115812 |
| 上海公安学院 | 106291 | 106291 |
| 上海兴伟学院 | 33532 | 33532 |
| 上海商学院 | 155186 | 155186 |
| 上海外国语大学 | 302454 | 302454 |
| 上海外国语大学贤达经济人文学院 | 92331 | 92331 |
| 上海大学 | 607608 | 607608 |
| 上海对外经贸大学 | 243112 | 243112 |
| 上海工程技术大学 | 224267 | 224267 |
| 上海师范大学 | 407476 | 407476 |
| 上海师范大学天华学院 | 76674 | 76674 |
| 上海应用技术大学 | 291811 | 291811 |
| 上海建桥学院 | 188996 | 188996 |
| 上海思博职业技术学院 | 33447 | 33447 |
| 上海戏剧学院 | 116150 | 116150 |
| 上海政法学院 | 219194 | 219194 |
| ... | ... | ... |
| 黄冈师范学院 | 104892 | 104892 |
| 黄冈职业技术学院 | 42997 | 42997 |
| 黄山学院 | 60550 | 60550 |
| 黄河交通学院 | 60367 | 60367 |
| 黄河科技学院 | 96146 | 96146 |
| 黄淮学院 | 152150 | 152150 |
| 黎明职业大学 | 32186 | 32186 |
| 黑河学院 | 69555 | 69555 |
| 黑龙江东方学院 | 50417 | 50417 |
| 黑龙江中医药大学 | 169616 | 169616 |
| 黑龙江八一农垦大学 | 125798 | 125798 |
| 黑龙江外国语学院 | 49229 | 49229 |
| 黑龙江大学 | 344645 | 344645 |
| 黑龙江工业学院 | 121327 | 121327 |
| 黑龙江工商学院 | 42071 | 42071 |
| 黑龙江工程学院 | 117734 | 117734 |
| 黑龙江工程学院昆仑旅游学院 | 34104 | 34104 |
| 黑龙江建筑职业技术学院 | 32713 | 32713 |
| 黑龙江科技大学 | 238421 | 238421 |
| 黑龙江财经学院 | 55881 | 55881 |
| 黔南民族师范学院 | 55214 | 55214 |
| 齐鲁医药学院 | 121623 | 121623 |
| 齐鲁工业大学 | 329048 | 329048 |
| 齐鲁师范学院 | 134712 | 134712 |
| 齐鲁理工学院 | 99493 | 99493 |
| 齐齐哈尔医学院 | 120487 | 120487 |
| 齐齐哈尔大学 | 164782 | 164782 |
| 齐齐哈尔工程学院 | 47971 | 47971 |
| 齐齐哈尔高等师范专科学校 | 28897 | 28897 |

龙岩学院 80677 80677

In [14]:

python 复制代码
data_line=data3.sort_values(by='median', ascending=True).tail(10)
data_line

Out[14]:

| | mean | median |
| 学校名称 | | |
| 四川大学 | 1018881 | 1018881 |
| 苏州大学 | 1054040 | 1054040 |
| 华中科技大学 | 1055994 | 1055994 |
| 南京大学 | 1067571 | 1067571 |
| 复旦大学 | 1091254 | 1091254 |
| 浙江大学 | 1102369 | 1102369 |
| 吉林大学 | 1113904 | 1113904 |
| 武汉大学 | 1166705 | 1166705 |
| 清华大学 | 1377703 | 1377703 |

北京大学 2155049 2155049

In [15]:

python 复制代码
from pyecharts.charts import Line
line = (Line()
       .add_xaxis(list(data_line.index))
       .add_yaxis('',[int(i) for i in(round(data_line['mean']))])
        .set_global_opts(title_opts=opts.TitleOpts(title="中国大学热度概况top10", subtitle="平均"),xaxis_opts=opts.AxisOpts(name_rotate=0,name="热度",axislabel_opts={"rotate":60}))

        )
line.render_notebook()

Out[15]:

In [16]:

python 复制代码
data["部门"].unique()

Out[16]:

复制代码
array(['教育部', '中科院', '浙江大学', '工信部', nan, '中国共产党中央军事委员会', '公安部', '社科院',
       '中国人民解放军海军', '市政府', '省政府', '国民委', '中国人民解放军陆军', '国卫委', '统战部',
       '中国人民解放军空军', '交通运输部', '国体局', '省教育厅', '自治区政府', '海关总署',
       '交通运输部(中国民用航空局)', '新疆生产建设兵团', '中华妇女联合会', '中华全国总工会', '市教委',
       '河南省体育局', '应管部', '地震局', '自治区教育厅', '香港特别行政区教育局', '澳门特别行政区政府',
       '中华人民共和国澳门特别行政区高等教育局', '中国人民解放军火箭军', '香港特别行政区政府教育局', '香港特别行政区政府',
       '上海市 中国科学院', '中国人民武装警察部队总部', '国家军委', '外交部', '解放军战略支援部队航天系统部',
       '中国人民解放军战略支援部队', '共青团', '中国澳门特区政府', '中央办公厅', '司法部', '中国人民武装警察部队',
       '中国人民武装警察部队政治部', '解放军成都军区', '中央军委联合参谋部', '中国人民解放军空军总部',
       '中国共产党中央军事委员会政治工作部', '解放军兰州军区', '香港特别行政区政府高等教育署', '中国人民解放军',
       '解放军总参谋部', '澳门特别行政区社会文化司', '空军装备部'], dtype=object)

In [17]:

python 复制代码
from collections import Counter
# 使用 Counter 统计元素出现次数
counts = Counter(data["部门"])

# 使用 sorted() 函数对出现次数进行降序排序
sorted_counts = sorted(counts.items(), key=lambda x: x[1], reverse=True)

# 打印结果
for element, count in sorted_counts:
    print(element, count)
复制代码
省政府 780
省教育厅 386
教育部 95
市政府 89
自治区政府 80
市教委 38
自治区教育厅 21
nan 12
工信部 9
中国人民解放军陆军 8
香港特别行政区教育局 7
国民委 6
公安部 5
中国人民解放军空军 5
中国人民解放军海军 4
新疆生产建设兵团 3
中国人民武装警察部队 3
解放军总参谋部 3
中科院 2
统战部 2
交通运输部(中国民用航空局) 2
应管部 2
香港特别行政区政府 2
中国人民武装警察部队总部 2
浙江大学 1
中国共产党中央军事委员会 1
社科院 1
国卫委 1
交通运输部 1
国体局 1
海关总署 1
中华妇女联合会 1
中华全国总工会 1
河南省体育局 1
地震局 1
澳门特别行政区政府 1
中华人民共和国澳门特别行政区高等教育局 1
中国人民解放军火箭军 1
香港特别行政区政府教育局 1
上海市 中国科学院 1
国家军委 1
外交部 1
解放军战略支援部队航天系统部 1
中国人民解放军战略支援部队 1
共青团 1
中国澳门特区政府 1
中央办公厅 1
司法部 1
中国人民武装警察部队政治部 1
解放军成都军区 1
中央军委联合参谋部 1
中国人民解放军空军总部 1
中国共产党中央军事委员会政治工作部 1
解放军兰州军区 1
香港特别行政区政府高等教育署 1
中国人民解放军 1
澳门特别行政区社会文化司 1
空军装备部 1

In [19]:

python 复制代码
from pyecharts import options as opts
from pyecharts.charts import Radar
# 数据
data = [
    {"value": [780, 386, 95, 89, 80, 38], "name": "实际值"},
    {"value": [1000, 1000, 1000, 1000, 1000, 1000], "name": "目标值"}
]

# 指示器名称
indicator = [
    {"name": "省政府", "max": 1000},
    {"name": "省教育厅", "max": 1000},
    {"name": "教育部", "max": 1000},
    {"name": "自治区政府", "max": 1000},
    {"name": "市教委", "max": 1000},
    {"name": "自治区教育厅", "max": 1000},
]

# 绘图
radar = (
    Radar()
    .set_global_opts(title_opts=opts.TitleOpts(title="中国院校部门雷达图"))
    .add_schema(schema=indicator)
    .add("数据", data, label_opts=opts.LabelOpts(is_show=False))
)

# 展示
radar.render_notebook()

Out[19]:

相关推荐
Mopes__33 分钟前
Python | Leetcode Python题解之第452题用最少数量的箭引爆气球
python·leetcode·题解
AI视觉网奇41 分钟前
pymeshlab 学习笔记
开发语言·python
纪伊路上盛名在1 小时前
如何初步部署自己的服务器,达到生信分析的及格线
linux·运维·服务器·python·学习·r语言·github
计算机源码社1 小时前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
汤兰月1 小时前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式
西柚与蓝莓3 小时前
【开源开放体系总结】
python
belldeep6 小时前
python:reportlab 将多个图片合并成一个PDF文件
python·pdf·reportlab
FreakStudio9 小时前
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
python·单片机·嵌入式·面向对象·电子diy
丶21369 小时前
【CUDA】【PyTorch】安装 PyTorch 与 CUDA 11.7 的详细步骤
人工智能·pytorch·python
_.Switch10 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j