前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高考志愿怎么报?582个专业,1281个本科院校,你会如何选择?

高考志愿怎么报?582个专业,1281个本科院校,你会如何选择?

作者头像
Python数据科学
发布2019-07-04 14:49:41
3680
发布2019-07-04 14:49:41
举报
文章被收录于专栏:Python数据科学Python数据科学
作者:小F 来源:法纳斯特

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

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

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

{图源:破冰行动}

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

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

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

下面展示一下数据。

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

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

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

代码语言:javascript
复制
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,智能点的就是人工智能。

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

接下来对专业进行分析。

代码语言:javascript
复制
# 专业分类
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就读的大机械居然没上榜,惭愧呀。

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

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

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

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

代码语言:javascript
复制
# 对学校进行分组
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%,那么剩下的差不多都是大学了。

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

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

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

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

代码语言:javascript
复制
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)

得到结果如下。

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

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

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

专注于数据科学领域的知识分享

欢迎在文章下方留言与交流

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据科学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:小F 来源:法纳斯特
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档