本报告爬取智联招聘、前程无忧、BOSS直聘三个具有代表性的网站,爬取数据分析相关职位信息,用EXCEL进行分析,实现步骤如下:
一、按什么思路进行分析?
二、数据分析实操过程
用于分析的数据是各个城市关于数据分析职位的招聘信息, 接下来我们就按照数据分析的步骤来一步一步进行操作。
Step1:提出问题
不是以终为始做出的数据分析结论再漂亮都是没有用的。所以我们要先来确定一下,我们想通过数据分析了解的内容是什么。
现在手中数据是关于数据分析岗位在各个城市的招聘信息,那我关心的是:
这个岗位的现状如何,能不能满足我目前的物质需求同时有机会可以做到;
这个岗位发展潜力如何,值不值得作为职业发展方向;
这个岗位对于应聘人员有没有什么偏好,有哪些要求;
Step2:理解数据
是说我们需要对数据包含的信息有一个大体的了解,可以考虑针对想解决的问题,可以从哪些方向进行分析,此次所用的数据包含的信息如下:
可以看到包含了公司,职位和应聘人员要求三个层面的信息,之后我们可以考虑从这三个层面入手去分析问题。
Step3:数据清洗
就是把原始数据处理成我们分析需要用的状态,这是整个数据分析中非常非常重要的一步,可能会花费整个过程60%的时间,但是这是值得的,因为清洗后可以避免分析过程出现数据问题,同时可以提高分析结果的有效性。
数据清洗如此重要,所以它也是有一个标准流程的,我们可以掌握这个套路,同时提高数据清洗的效率和质量。
选择子集
不是数据集中所有的变量都是这次分析要用的,我们可以先选定需要用的信息,其余的列隐藏起来。(注意,这里不要删除掉而是隐藏,万一过程中想要用还可以取消隐藏重新编辑。)
数据中:
①“公司全名”、“公司ID”、“公司简称”全表示公司名,三选一即可,我们保留“公司简称”;
②“公司所在商区”和“职位福利”都是文字,暂时不需要;
操作方式:
若需要用隐藏的列,可以取消隐藏:
方法1:选中全部列后单击右键出现菜单选择“取消隐藏”;
方法2:如下图操作
2. 列名重命名
适用于原来列名不容易理解或者有歧义的,此处不用修改。
3. 删除重复值
先分析什么样的重复值对于我们有影响;我们希望每条招聘信息都是唯一的,如果不唯一会造成统计结果不准确,而在数据中“职位ID”应该是一个不同招聘信息不同的变量,就像每个人的身份证号一样。所以我们考虑以“职位ID”的唯一性来进行数据去重。
具体操作:
4. 缺失值处理
数据条目比较多,我们需要了解是否信息都是完整的,如果不是,后续需要对缺失值进行处理。
查看每列数据是否完整:因为已经选定以“职位ID”为唯一标准,所以先看一下其所在列的计数情况(共5032条),再用其他列和它对比;从图上可以看出,“城市”计数为5030条,比基准列“职位ID”少2,说明有2条缺失值。
缺失值的处理:一般有4种方法进行缺失值处理,根据情况灵活使用:
1)通过人工手动补全
2)删除缺失的数据
3)用平均值代替缺失值
4)用统计模型计算出的值去代替缺失值
此处,只有2条缺失,且可以判断出城市应为上海,所以采取第一种方法-手动补全。这里的手动也不是真的一个一个去输入,而是采用了excel的自动填充。
5. 一致化处理
我们发现变量“公司所属领域”的写法不太一致,有的只有1个描述,有的有好多且以逗号或者顿号分开,这里我们只需要看公司所属的大领域即可,而所有描述第一个肯定是大领域,所以考虑只保留第一个(如果有多个描述)。可以使用excel的分列功能来达到目的。
变量“薪水”是一个范围不方便我们进行计算,所以想先把它整理一下变成数值型,得到一个平均薪资再进行之后的分析。思路为先得到最低和最高薪资,再求平均;考虑的方法有两种:
方法1. 分别用 LEFT/FIND/MID 函数得到最低最高薪资,再求平均;
最低薪水= LEFT(A2,FIND("k",A2) -1)
最高薪水=MID(A2,FIND("-",A2)+1,LEN(A2)-FIND("-",A2)-1)
计算好一行的结果,我们向下填充之后,可以通过“筛选”来查看是否有异常值;
只勾选异常值来查看原因,并进行修改;
最低薪水和最高薪水都会有错—
1. 最低薪水是因为K的字母有大写有小写,而在FIND函数中是区分大小写的,用查找替换把大写K全部替换成小写k;
2. 最高薪水因为有的薪水写的是“9k以上”,这种情况让最高薪水和最低薪水相同。
方法2: 用excel 以”-”分列得到最低最高薪资, 再用查找替换功能(ctrl+F快捷键)去除汉字“以上”和字母k, 最后求平均。
最后求平均的时候要注意,可能会出错,原因是最低最高薪水不是数值型变量,将其改为数值型后再进行计算。方法不唯一,下图为其中一种:
6. 数据排序
可以按平均薪水对全部数据进行排序,方便查看。
7. 异常值处理
到了这一步,从格式上的数据清洗就已经都做好了,剩下的是内容上的检查,比如说职位名称真的都是数据分析的岗位吗,有没有其他职位的混了进来?我们可以用数据透视表先检查一下
发现果然有,像系统架构师都进来了,所以考虑设置条件,将这些都筛掉:
最后,将“数据分析职位名称”=“是”的筛选出来,为了便于之后分析,将这部分复制出来另存一个excel表,我们的数据清洗部分就做完了。
Step4: 构建模型
这里我们都用数据透视表来做,如何做数据透视表上面已经说明了,接下来只说明分析思路和对应结果。
1. 分析数据分析职位的现状:
① 薪资情况-不同城市、不同行业、不同职位部门、不同工作经验、不同学历的薪资分布;
② 需求情况-不同城市、不同行业、不同职位部门、不同经验、不同学历的招聘人数;
2. 分析数据分析职位的发展前景:
① 行业情况-数据分析需求公司所在的行业分布;
② 公司规模-不同规模公司的职位分布情况;
③ 个人-不同工作经验、不同学历的职位分布情况;(上一项中已经包括)
全国和北京薪资情况-不同城市、行业、职位部门、工作经验和学历全国和北京招聘人数-不同城市、行业、职位部门、工作经验和学历不同公司规模对于数据分析岗位的招聘数量和薪资情况-全国和北京
对应分析结果:
根据统计结果,目前数据分析的薪资还可以,重点关注工作经验1-3年和3-5年在北京的情况,算是还不错;
招聘的数量来看,北京居于榜首;而且招聘要求的工作经验主要集中在1-3和3-5年,学历主要集中在本科,对于我来说比较匹配;
从行业来看,目前主要集中在移动互联网或者互联网+,是属于高速发展中的行业,值得进入
从公司规模来看,数据分析的需求在大于50人的公司中是差不多,即基本所有规模的公司都需要这个岗位;
从招聘人员集中的工作经验要求来看,主要是1-5年,都属于相对短的,说明此职业正处于比较前期的阶段;10年以上的招聘信息很少,对于长期从事此职位的最终发展现在还没有成型的参考。
从薪资涨幅来看,薪资是随着经验增长而涨幅变大的;