美文网首页大数据 爬虫Python AI SqlPython学习分享
用Python分析了582个专业,1281个本科院校,告诉你怎么

用Python分析了582个专业,1281个本科院校,告诉你怎么

作者: 烟雨丿丶蓝 | 来源:发表于2019-06-24 14:42 被阅读25次

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

    image

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

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

    image

    {图源:破冰行动}

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

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

    image

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

    Python学习交流群:835017344,这里是python学习者聚集地,有大牛答疑,有资源共享!有想学习python编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。


    下面展示一下数据。

    image

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

    image

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

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

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    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)

    </pre>

    获得数据如下。

    image

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

    image

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

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

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

    接下来对专业进行分析。

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    专业分类

    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)

    </pre>

    得到结果如下。

    image

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

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

    image

    最终结果如下。

    image

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

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

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

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

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

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

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

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

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

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

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    对学校进行分组

    df_name = df.groupby('school').count().reset_index().sort_values(by='subject')
    print(df_name)

    输出包含学院的校名

    print(df_name[df_name['school'].str.contains('学院')])

    </pre>

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

    image

    嗯,1281所本科院校。

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

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

    image

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

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

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

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

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

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    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)

    </pre>

    得到结果如下。

    image

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

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

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

    相关文章

      网友评论

        本文标题:用Python分析了582个专业,1281个本科院校,告诉你怎么

        本文链接:https://www.haomeiwen.com/subject/tkxoqctx.html