用Python分析582个专业,1281个本科院校,帮你选专业填志愿

点击上方 蓝色文字,选择置顶或星标

第一时间关注 Python 技术干货!

本文转载自法纳斯特|作者小F

 阅读文本大概需要 6 分钟。

就在前两天,教育部发布了最新的全国高等学校名单。

于是乎,所谓的野鸡大学也就无处躲藏了。

也给广大的高考生在填报志愿的时候,提供了一个参考。

{图源:破冰行动}

当然本次不讨论这个...

最新发布的名单没有本科院校的数量,于是小F找了2018年的数据。

1243所本科院校,和本次获取到的数据「1281个」基本差不多。

下面展示一下数据。

包含了专业名称,开设此专业的院校数量,及每年的就业率,最后是每年毕业生数量。

5万多条院校开通专业的数据,涵盖11大类,582个专业,1281个本科院校。

接下来就来分析一波,先对学科进行分组。

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba

# 设置列名与数据对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 显示15行
pd.set_option('display.max_rows', 15)

# 读取数据
df = pd.read_csv('message.csv', encoding='gbk', header=None, names=['subject', 'major', 'school'])

# 学科分类
df_subject = df.groupby('subject').count().reset_index().sort_values(by='school')
print(df_subject)

# 获取列表数据
list1, list2 = [], []
for i in df_subject['subject']:
    list1.append(i)
for j in df_subject['school']:
    list2.append(j)
print(list1)
print(list2)

获得数据如下。

利用获取的两个列表数据进行可视化。

这里「工学」位居第一,也和当下时代的发展相契合。

传统点的就是工业4.0,智能点的就是人工智能。

无不和「工学」息息相关。

接下来对专业进行分析。

# 专业分类
df_major = df.groupby('major').count().reset_index().sort_values(by='school')
print(df_major)

# 获取列表数据
list1, list2 = [], []
for i in df_major['major'][-10:]:
    list1.append(i)
print(list1)
for j in df_major['school'][-10:]:
    list2.append(j)
print(list2)

得到结果如下。

专业TOP10出炉,也能以供参考。

照例还是使用现成的模板,方便多了...

最终结果如下。

开设英语的本科院校达到了1001所,接近院校总数的80%了。

不过网上对英语的评价就是:英语==失业。

所以对于英语专业,需要慎重考虑。

尾随其后的是计算机科学与技术,目前的大热门。

当然是不是修电脑我就不清楚了,相信关注小F公众号的小伙伴们,都能感受到计算机的魅力。

令人失望的是,小F就读的大机械居然没上榜,惭愧呀。

想当初「机械机械,压倒一切」,真不是瞎吹的。

一入机械深似海,从此妹子是路人。

这句也不假,说多了都是泪~

下面统计院校总数,并获取校名包含学院的院校数量。

# 对学校进行分组
df_name = df.groupby('school').count().reset_index().sort_values(by='subject')
print(df_name)
# 输出包含学院的校名
print(df_name[df_name['school'].str.contains('学院')])

得到院校总数以及哪所学校的专业最多。

嗯,1281所本科院校。

其中贵州大学以164个本科专业位居榜首。

接下来看一下校名包含学院的学校有多少所。

829所,占比64.7%,那么剩下的差不多都是大学了。

学院变大学(校名),这也是每年好多高校一直在做的事情。

毕竟一个霸气的校名,也能吸引不少考生报名。

最后生成一个校名词云图。

其中需要去掉「大学」和「学院」这两个关键词。

def create_wordcloud(df):
    """
    生成校名词云
    """
    # 分词
    text = ''
    for line in df['name']:
        text += ' '.join(jieba.cut(line, cut_all=False))
        text += ' '
    backgroud_Image = plt.imread('school.jpg')
    wc = WordCloud(
        background_color='white',
        mask=backgroud_Image,
        font_path='C:\Windows\Fonts\华康俪金黑W8.TTF',
        max_words=1000,
        max_font_size=150,
        min_font_size=15,
        prefer_horizontal=1,
        random_state=50,
    )
    wc.generate_from_text(text)
    img_colors = ImageColorGenerator(backgroud_Image)
    wc.recolor(color_func=img_colors)
    # 看看词频高的有哪些
    process_word = WordCloud.process_text(wc, text)
    sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True)
    print(sort[:50])
    plt.imshow(wc)
    plt.axis('off')
    wc.to_file("校名词云.jpg")
    print('生成词云成功!')


# 去除大学
df_name = df_name['school'].str.replace('大学', '')
dict_name = {'name': df_name.values, 'numbers': df_name.index}
df_name = pd.DataFrame(dict_name)

# 去除学院
df_name = df_name['name'].str.replace('学院', '')
dict_name = {'name': df_name.values, 'numbers': df_name.index}
df_name = pd.DataFrame(dict_name)

# 生成校名词云图
create_wordcloud(df_name)

得到结果如下。

师范和科技,妥妥的扛把子。

讲了半天,最后该如何选择呢?

当然是想去哪就去哪(分数高),冥冥之中,自有天意~


 精彩推荐 

Python知识圈原创文章合集
谈谈爬虫中定位元素的常见方法
讲讲Python爬虫绕过登录的小技巧
小白怎么搭建自己的个人博客网站?云服务+WordPress教程

以梦为马,不负韶华

觉得不错,点在看、转发分享朋友圈都是一种支持。

--留言时间--

觉得不错

右下角

点个在看

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值