北起漠河南至曾母暗沙,东达抚远西至斯姆哈纳。在广袤的中国土地上,千百年一直流传着古老的传说:书中自有黄金屋。
今天,我就用数据告诉你,书中到底有没有黄金屋。
数据来源
利用 Max 的拉勾爬虫爬取了拉勾杭州站,要求3~5年工作经验的1000条招聘数据。
简单数据分析
疑问1:不同学历进的公司规模有明显不同吗?
positionlist_grouped = positionlist.groupby(by = ['companySize','education'],as_index = False).count()
将数据按照公司规模与教育程度分组。
plt.rcParams['font.family'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False
sns.set_style('whitegrid',{'font.sans-serif':['Arial Unicode MS','Arial']})
# Draw a nested barplot to show survival for class and sex
g = sns.catplot(x="companySize", y="positionId", hue="education", data=positionlist_grouped,
height=6, kind="bar", palette="muted")
g.despine(left=True)
g.set_ylabels("count");
绘制分组数据的条形图。
从图上可以看到,虽然明确要求硕士的岗位比较少,但是不同规模的公司对学习要求的分布基本一致。
不同学历进的公司规模没有明显不同。
疑问2:不同学历进的公司财务状况有明显不同吗?
做法与疑问1一样,区别是将数据按照财务状况和学历进行分组,然后绘制分布的条形图。
groupbyfe = positionlist.groupby(by = ['financeStage','education'],as_index = False).count()
我们可以看到 C 轮的公司开放给大专学历的岗位相比 B 轮有一个断崖式的下跌。饼图会更明显的反应出这个现象。
plt.pie('positionId',labels = 'financeStage',data = groupbyfe[groupbyfe['education'] == '大专'],autopct='%1.1f%%')
plt.title('专科');
....
....# 省略了绘制本科的代码
....# 省略了绘制硕士的代码
<div style = 'display:flex;justify-content:space-around'>
<img src = 'https://user-gold-cdn.xitu.io...;h=250&f=png&s=21188' style = 'width:30%;height:30%'>
<img src = 'https://user-gold-cdn.xitu.io...;h=250&f=png&s=21948' style = 'width:30%;height:30%'>
<img src = 'https://user-gold-cdn.xitu.io...;h=249&f=png&s=20731' style = 'width:30%;height:30%'>
</div>
对比三个饼图,注意观察本科和专科,B、C 轮公司的分布,我们可以看到 C 轮的公司提供给专科学历的人的岗位占比非常的低。
所以对于疑问2,我的看法是:不同学历进的公司财务状况基本一致,但是 C 轮的公司可能更倾向于招募本科及本科以上学历的员工。
疑问3:不同的岗位对学历的要求有明显不同吗?
对于这个问题,我绘制了词云。
- 首先将数据按照职位类别和学历进行分组并统计频数
- 仅保留分组数据的职位类别和学历列
- 将新的数据转置
- 将职位类别行设置为列名
- 利用 pandas 的 to_dict 方法生成词频数据
- 利用 wordcloud 的 generate_from_frequencies 方法绘制词频
positionlist_grouped = positionlist.groupby(by = ['secondType','education'],as_index = False).count()
grouped_dz = positionlist_grouped[positionlist_grouped['education'] == '大专'].loc[:,['secondType','positionId']].T.dropna(axis = 1)
grouped_dz.rename(columns=grouped_dz.loc['secondType',:],inplace = True)
grouped_dz.drop(labels = 'secondType',inplace=True)
from wordcloud import WordCloud
wordcloud = WordCloud(font_path='/Library/Fonts/Songti.ttc',background_color='white').generate_from_frequencies(grouped_dz.to_dict('records')[0])
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
<div style = 'display:flex;justify-content:space-around;margin-top:4em;'>
<img src = 'https://user-gold-cdn.xitu.io...;h=200&f=png&s=70352' style = 'width:30%;height:30%'>
<img src = 'https://user-gold-cdn.xitu.io...;h=200&f=png&s=71913' style = 'width:30%;height:30%'>
<img src = 'https://user-gold-cdn.xitu.io...;h=200&f=png&s=57746' style = 'width:30%;height:30%'>
</div>
上面三张图由左至右分别是专科、本科与硕士学历的职位词云。
可以看到销售相关的工作要求专科学历即可,运营、后端开发、移动前端开发、产品经理等岗位对学历的要求专科、本科平分秋色。而一些当下火热的岗位,比如人工智能、硬件开发、数据开发等,大部分公司对学历的要求是硕士。
疑问4:不同学历的薪资有明显不同吗?
终于,到了最核心也是大家最关心的部分。
原始数据的薪资是一个区间,将区间拆分为最低与最高两个变量。
positionlist['Lsalary']=positionlist['salary'].str.split('-',expand = True)[0].str[:-1].astype(int)
positionlist['Hsalary']=positionlist['salary'].str.split('-',expand = True)[1].str[:-1].astype(int)
绘制不同学历的最低薪资与最高薪资分布直方图。
x = positionlist[positionlist['education'] == '大专'].loc[:,['Lsalary']]
y = positionlist[positionlist['education'] == '本科'].loc[:,['Lsalary']]
z = positionlist[positionlist['education'] == '硕士'].loc[:,['Lsalary']]
ax = sns.distplot(x)
ax = sns.distplot(y)
ax = sns.distplot(z)
ax.set_xlabel('工资(单位K/月)')
ax.set_title('最低工资分布');
#*****最高薪资?***********#
x = positionlist[positionlist['education'] == '大专'].loc[:,['Hsalary']]
y = positionlist[positionlist['education'] == '本科'].loc[:,['Hsalary']]
z = positionlist[positionlist['education'] == '硕士'].loc[:,['Hsalary']]
ax = sns.distplot(x,kde_kws={"label": "大专"})
ax = sns.distplot(y,kde_kws={"label": "本科"})
ax = sns.distplot(z,kde_kws={"label": "硕士"})
ax.set_xlabel('工资(单位K/月)')
ax.set_title('最高工资分布');
<div style = 'display:flex;justify-content:space-around;margin-top:4em;'>
<img src = 'https://user-gold-cdn.xitu.io...;h=277&f=png&s=21269' style = 'width:50%;height:50%'>
<img src = 'https://user-gold-cdn.xitu.io...;h=277&f=png&s=22709' style = 'width:50%;height:50%'>
</div>
对比之后可以看到学历越高,起薪的众数越高,最高薪的众数也越高。所以,不得不说学历的高低与收入的高低在统计分布上有相关性。
结论
回答最开始的问题,多读书到底能不能多赚钱?答案从最后一个图可以看出来,多读书的人赚更多钱的概率会更大。另外,有一个数据我没写:对学历要求越高的岗位,对应的公司福利也更好。专科很多岗位朝九晚五算是福利了,而硕士的很多岗位对应的福利是六险一金,年度出国游,公派进修等等。
数据游戏
最后,我想打个小广告:
本期新的数据游戏是:<span style = 'color:#ee0000'>免费读书</span>。
异步社区和我合作举办的一周免费读书活动,由我亲自挑选了[
精通数据科学:从线性回归到深度学习](https://www.epubit.com/book/d...。
具体活动细节可以关注微信公众号 数据科学与技术(read_csv) 回复「数据游戏2期」查看。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。