听说数据分析师挺火,我们来数据分析一下

2020-04-01 09:57:51 浏览数 (1)

导读

经常看见各种数据分析师培训的运营推荐,那么数据分析师的就业行情究竟如何?让我们用数据说话,一探究竟!

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
代码语言:javascript复制
df.drop(['id', 'url'],axis=1, inplace = True)
  • 浏览数据发现有4条是招聘实习数据分析师,记录格式与其他相差较大(尤其是教育和薪资字段),且不是本文分析主体,直接过滤掉
代码语言:javascript复制
df = df.loc[~df['salary'].str.contains('天'),:]

这是通过筛选记录构建新的dataframe的思路,也可以继续用drop函数实现:

代码语言:javascript复制
df.drop(df[df['salary'].str.contains('天')].index, inplace = True)
  • 根据薪资字段提取薪水信息,包括提取薪资下限、薪资上限、每年开薪月数,并根据薪资下限和薪资上限构建"平均"薪资:avg = min 0.25*(max - min),后续分析薪资与其他因素关系时均应用平均薪资数据。
代码语言:javascript复制
df['salLow']=df['salary'].str.findall('(d )-d ').str[0].astype('int')
df['salHigh']=df['salary'].str.findall('d -(d )').str[0].astype('int')
df['salAvg'] = df['salLow'] 0.25*(df['salHigh']-df['salLow'])
df['salNum']=df['salary'].str.findall('(d )薪').str[0]
df.drop(['salary'], axis=1, inplace=True)
  • 根据教育字段,提取经验要求和学历要求,其中原始数据中教育字段由经验和学历直接拼接而成,不存在任何直接可用分隔符
代码语言:javascript复制
#以经验要求中的最小年份要求作为经验数据
df['exp'] = df['education'].str.findall('(d )-d 年').str[0]
df['exp'].fillna(value = '0', inplace = True)
#初始化为"未知",包括某种学历时就赋值为该学历字段
df['edu'] = '未知'
edus = ['高中', '大专', '本科', '硕士', '博士']
for e in edus:
    df.loc[df['education'].str.contains(e), 'edu'] = e
  • 根据公司类型字段提取企业融资情况和企业人数规模
代码语言:javascript复制
#提取融资类型,主要包括信息情况用列表表示
types = ['已上市', '未融资', '不需要融资', 'A轮', 'B轮', 'C轮', 'D轮', '天使轮']
df['finance'] = '未知'
for t in types:
    df.loc[df['com_type'].str.contains(t), 'finance'] = t
#以公司类型中人数区间上限作为公司规模信息
df['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条杭州数据分析师招聘信息进行了分析,通过分析发现:

  • 数据分析师招聘数量相对较大,无论是大厂还是小厂、也无论是否上市或者融资,都或多或少有数据分析师需求
  • 杭州数据分析师招聘企业以西湖和滨江最多,但余杭的企业平均薪资可能更高
  • 数据分析师对学历、经验没有特殊要求
  • 但对综合技能要求较为全面,尤其是对数据挖掘能力最为普遍,但大数据平台相关技术往往意味着更高的薪水
  • 本文仅仅是对平台数据的简单分析……

0 人点赞