@wade123
2019-05-13T02:46:09.000000Z
字数 3570
阅读 1028
Python入门爬虫与数据分析
摘要: 分析 2018 年中国大学毕业生薪酬表。
这是一份中国薪酬网公布的 2018 年中国高校大学生薪酬排名表:
拿到这样一份常见的表格,可以尝试从哪几个方面做数据分析呢,提供几个思路:
表格中提供了三年的薪资对比,那么可以比较一下刚工作一年和工作五年后各校学生的薪资情况。大部分学生就业是通过通过企业校招,第一年的薪资跟学校往往很大关系,而五年后的薪资基本就是看个人能力了。这样也能侧面反映出学校在社会上的声誉地位和学校学生的整体能力。
这里筛选出了一年和五年后的薪资最高(低)的 10 所高校:
rank | university | 2017 | university | 2013 |
---|---|---|---|---|
0 | 清华大学 | 9065 | 北京大学 | 13790 |
1 | 北京大学 | 9042 | 复旦大学 | 13594 |
2 | 北京外国语大学 | 9020 | 外交学院 | 12669 |
3 | 上海交通大学 | 9010 | 清华大学 | 12614 |
4 | 对外经济贸易大学 | 8998 | 同济大学 | 13616 |
5 | 外交学院 | 8956 | 国际关系学院 | 12786 |
6 | 复旦大学 | 8842 | 上海外国语大学 | 12587 |
7 | 浙江大学 | 8810 | 中国人民大学 | 12258 |
8 | 同济大学 | 8784 | 对外经济贸易大学 | 12316 |
9 | 中央财经大学 | 8771 | 广东外语外贸大学 | 12229 |
rank | university | 2017 | university | 2013 |
---|---|---|---|---|
190 | 兰州理工大学 | 3616 | 兰州理工大学 | 5206 |
191 | 青岛科技大学 | 3584 | 延边大学 | 5072 |
192 | 天津师范大学 | 3574 | 重庆工商大学 | 5253 |
193 | 华北电力大学(保定) | 3542 | 青岛科技大学 | 5032 |
194 | 山东中医药大学 | 3528 | 南京信息工程大学 | 4974 |
195 | 江苏科技大学 | 3513 | 山东中医药大学 | 4871 |
196 | 武汉工程大学 | 3460 | 江苏科技大学 | 4934 |
197 | 延边大学 | 3437 | 华北电力大学(保定) | 4931 |
198 | 南京信息工程大学 | 3426 | 武汉工程大学 | 4734 |
199 | 西安建筑科技大学 | 3394 | 西安建筑科技大学 | 4925 |
可以看到:
清华毕业一年薪资最高,但五年后就不如北大、复旦甚至外交学院。
前十名不少是语言贸易类大学,羡慕。
代码实现如下:
import pandas as pd
data = pd.read_csv('./salary.csv')
data1 = data.iloc[:,[1,6]] #切片只保留第2和第7列
# data2 = data.sort_values(by='2017',ascending=False).reset_index(drop=True)
data2 = data.sort_values(by='2013',ascending=False).reset_index(drop=True)
data2 = data2.iloc[:,[1,8]]
data3 = pd.concat([data1,data2],axis=1) #合并dataframe
data3.head(10)
data3.tail(10)
表格中大学都标注了所在省份,有地理位置就可以尝试用地图来展现,这样能直观对比各省份的高校数量、薪资水平等情况,以各省薪资分布为例,来用 pyecharts 绘制地图。
通过颜色深浅可以判断,薪资最高的是上海、北京、广东这些一线发达省份,也符合这些省份的经济水平。看来想拿高工资还是得去一线。接下来比较高的薪资是黑龙江,有点意外。西部一片白是因为一所学校都没有统计到,也反应了西部高校数量少,师资力量比较薄弱。
代码实现如下:
from pyecharts import Bar,Map,Geo
from pyecharts import Grid,configure
configure(global_theme='dark') # 使用黑色主题
data4 = data.groupby(by='province').mean()
print(data4.sort_values(by='2017',ascending=False)['2017'])
value = list(data4['2017'].values)
attr = list(data4.index)
map = Map('大学毕业一年薪资分布','上北广薪资最高,内蒙河南甘肃垫底',title_color='#fff',
title_pos='center')
map.add('',attr,value,
maptype='china',
is_random=True,effect_scale=5,
visual_range=[3000,8000],
visual_text_color='#fff',
is_visualmap=True
)
map.render('大学毕业一年薪资分布.png')
类似地还可以做出毕业五年后的薪资分布情况。
表格中还标注了高校类型,那么可以对比一下不同类型高校的薪资水平。
统计之后可以看到,国内大学按照学校类型可以分为十大类。薪资最高的不是理工类,也不是综合型大学,而是语言、艺术类学校,是不是有点意外?不过这也跟理工综合型学校的专业数量多有关系,不同专业薪资差别很大,平均下来可能就比较低。
代码实现如下:
data5 = data.groupby(by='category').mean()
data5.sort_values(by='2013',ascending=False,inplace=True)
value = list(data5['2017'].values.round(0))
attr = list(data5.index)
bar = Bar('不同学校类型薪资对比','语言类最高,医药最低',title_color='#fff',
title_pos='center') #,width=1200,height=600
bar.add('',attr,value,
is_label_show=True,
y_axis_interval=0,
y_axis_roate=45,
)
map.render('不同学校类型薪资对比.png')
bar
表格中也标注了学校是否为 985/211,所以还可以从这个角度分析。出来工作后很多人说学校不重要,能力才重要。个人觉得这话对一半,要有本事的话,出身好能力又强不更好?
来看「985 」「211 」和「双非」这三类高校不同工作年限的薪资情况。
可以看到,不管是工作一年、三年还是五年,「985 」学校的薪资都高于「211 」学校,远高于双非学校。所以能上好学校还是尽量上。
代码实现如下,这里绘制了多系列图:
data5 = data.groupby(by=['985','211']).mean().round(0)
data5.iloc[:,1:5]
value = list(data5['2017'].values.round(0))
value2 = list(data5['2015'].values.round(0))
value3 = list(data5['2013'].values.round(0))
attr = ['双非','211','985']
print(value,attr)
bar = Bar('不同学校类型薪资对比','985高校高于211高于双非',title_color='#fff',
title_pos='center') #,width=1200,height=600
bar.add('',attr,value,
is_label_show=True,
y_axis_interval=0,
y_axis_roate=45,
is_legend_show=True,
)
bar.add('',attr,value2,
is_label_show=True,
y_axis_interval=0,
y_axis_roate=45,
is_legend_show=True,
legend_pos='right'
)
bar.add('',attr,value3,
is_label_show=True,
y_axis_interval=0,
y_axis_roate=45,
is_legend_show=True,
legend_pos='right'
)
bar
以上,从连续性变量和分类变量入手,对这份表格做了一个简单分析,可以得到一眼看不出来的结论。
文中代码和素材可以在下方链接中得到: