经常看见各种数据分析师培训的运营推荐,那么数据分析师的就业行情究竟如何?让我们用数据说话,一探究竟!
01 数据来源
各大招聘网站提供的数据很多,简单写一个小爬虫就能轻松获得大量数据。虽然这些数据的真实性不能完全保证,但至少有一定的参考价值。
本文所用数据来源于Boss直聘,城市定位"杭州",搜索标签选择"数据分析师"。爬虫实现本身并不复杂,只是直聘网的cookie更新比较快,不过好在爬取数量也不大,所以也还可以应对。网站默认仅显示10页搜索结果,每页30条,共抓取299条,且经检验无重复记录。
注:联系号主可获取爬虫源码文件。另外,本文所有数据分析工作和图表创建均应用pandas和matplotlib完成,两幅词云图片应用wordcloud库制作。
02 数据清洗
由于数据爬取时较为随意,所以数据清洗的难度就自然比较大。首先来看下爬取得到的原始数据记录:
5条原始数据记录
去除id字段和url字段后,了解各字段的基本统计信息:
可以发现:
- 299条招聘记录涵盖了201家招聘单位、主要分布于9个地理区划
- 招聘岗位名称多达67种(可见数据分析师岗命名之混乱程度),指明"数据分析师"的有181条记录
- 发布招聘记录最多的单位是蚂蚁金服,有7条(经模糊匹配,网易相关的有9条记录)
- 教育相关信息中,具有3-5年工作经验、本科学历的记录数最多,有126条
- 薪资在15-30K的记录最多,有24条
由于原始数据中各字段均为字符串类型,且有很多不够规范之处,所以需要进行数据清洗。主要清晰流程及代码包括:
- 去除无用字段:id和url
1df.drop(['id', 'url'],axis=1, inplace = True)
- 浏览数据发现有4条是招聘实习数据分析师,记录格式与其他相差较大(尤其是教育和薪资字段),且不是本文分析主体,直接过滤掉
1df = df.loc[~df['salary'].str.contains('天'),:]
这是通过筛选记录构建新的dataframe的思路,也可以继续用drop函数实现:
1df.drop(df[df['salary'].str.contains('天')].index, inplace = True)
- 根据薪资字段提取薪水信息,包括提取薪资下限、薪资上限、每年开薪月数,并根据薪资下限和薪资上限构建"平均"薪资:avg = min + 0.25*(max - min),后续分析薪资与其他因素关系时均应用平均薪资数据。
1df['salLow']=df['salary'].str.findall('(\d+)-\d+').str[0].astype('int') 2df['salHigh']=df['salary'].str.findall('\d+-(\d+)').str[0].astype('int') 3df['salAvg'] = df['salLow']+0.25*(df['salHigh']-df['salLow']) 4df['salNum']=df['salary'].str.findall('(\d+)薪').str[0] 5df.drop(['salary'], axis=1, inplace=True)
- 根据教育字段,提取经验要求和学历要求,其中原始数据中教育字段由经验和学历直接拼接而成,不存在任何直接可用分隔符
1#以经验要求中的最小年份要求作为经验数据 2df['exp'] = df['education'].str.findall('(\d+)-\d+年').str[0] 3df['exp'].fillna(value = '0', inplace = True) 4#初始化为"未知",包括某种学历时就赋值为该学历字段 5df['edu'] = '未知' 6edus = ['高中', '大专', '本科', '硕士', '博士'] 7for e in edus: 8 df.loc[df['education'].str.contains(e), 'edu'] = e
- 根据公司类型字段提取企业融资情况和企业人数规模
1#提取融资类型,主要包括信息情况用列表表示 2types = ['已上市', '未融资', '不需要融资', 'A轮', 'B轮', 'C轮', 'D轮', '天使轮'] 3df['finance'] = '未知' 4for t in types: 5 df.loc[df['com_type'].str.contains(t), 'finance'] = t 6#以公司类型中人数区间上限作为公司规模信息 7df['com_size'] = df['com_type'].str.findall('(\d+人)').str[0]
处理后,得到的数据就基本可用于后续分析。
5条处理后数据记录
初步看几个大厂的数据分析师相关招聘数据:
蚂蚁金服、阿里巴巴、华为
网易、海康威视、有赞
03 企业和目标应聘者画像
- 首先给出招聘数据分析师企业画像:
除了未明确区划(标识杭州),西湖和滨江企业最多
融资企业数量并不多
还是大厂招聘需求量较大
- 了解了企业基本情况,再来看看企业对应聘者的目标画像:
薪资整体较为分散:既有60K的高薪岗,也不乏5K的低薪岗位
薪资月数直接关系年终奖多少
本科学历足以满足绝大部分数据分析师岗位要求
要求经验不限和要求经验在5年以上的招聘记录数量相当,不到40条
具有3年相关经验的数据分析师需求量最大
数据挖掘是数据分析师的最大技能标签
SQL、Python、Hive3大数据分析工具也是基本要求
通过这些基本统计,可以基本刻画数据分析师是这样一群人:普遍要求具备本科学历,3年左右工作经验,最擅长的技能是数据挖掘,使用最频繁的工具是SQL、Python和Hive,主要工作在西湖、滨江等区划,拿着整体较高的薪水。
04 影响数据分析师价值的因素
数据分析师的价值在于从数据中挖掘有效信息,精准反馈和有效决策业务指标和企业发展方向。那么,能最直接体现数据分析师价值的是什么呢?当然是其薪资水平了。
所以接下来,我们再用一组图表来刻画哪些因素最为影响数据分析师的价值(薪水)。
- 企业对数据分析师薪资影响
融资等级越高给出的薪资水平越高
大厂的高薪不是盖的
任凭西湖和滨江企业多,但余杭才是高薪区域
- 应聘者自身条件对薪资影响
高学历真的意味着高薪水
丰富的经验也意味着丰厚的报酬
分布式技术、Spark、Hive、Hadoop:大数据平台才是数据分析师的未来?
05 公司福利
最后,对招聘记录中的公司介绍进行词云展示:
虽然福利待遇标签很多,但我还是第一眼看到了年终奖、带薪休假,细看之下又发现了比较隐蔽的股票期权……
06 总结
本文对boss直聘平台近300条杭州数据分析师招聘信息进行了分析,通过分析发现:
- 数据分析师招聘数量相对较大,无论是大厂还是小厂、也无论是否上市或者融资,都或多或少有数据分析师需求
- 杭州数据分析师招聘企业以西湖和滨江最多,但余杭的企业平均薪资可能更高
- 数据分析师对学历、经验没有特殊要求
- 但对综合技能要求较为全面,尤其是对数据挖掘能力最为普遍,但大数据平台相关技术往往意味着更高的薪水
- 本文仅仅是对平台数据的简单分析……