接上一篇:用Excel做一次数据分析(一)——爬取前程无忧(51job)的招聘信息
得到了数据(截止2020-8-12)后,接下来可以开始数据清洗和分析的工作了:

总体步骤:

数据获取——这里用python爬取前程无忧的招聘信息;

明确分析目的——你拿这数据要得到什么信息,解决什么问题;

观察数据——各个数据字段的含义,中英文释义;

数据清洗——无效值、缺失值、重复值处理,数据结构是否一致等;

分析过程——围绕目的展开分析;

制作可视化——做图表做可视化报告

一、明确目的

数据分析的大忌是不知道分析的方向和目的,拿着一堆数据不知所措。数据用来解决什么问题?

是进行汇总统计制作成报表?

是进行数据可视化,作为一张信息图?

是验证某一类业务假设?

是希望提高某一个指标的KPI?

要知道一切数据分析都是以业务为核心目的,所以要找到业务问题的思考点。关于找到问题的切入点,之前数据分析思维篇讲过。永远不要妄图在一堆数据中找结论,目标在前,数据在后,哪怕是把数据做个平均值比较,也比没有方向好。每一步尝试都会引发进一步思考,比如为什么这个值这么低,原因在哪里,这个差异波动有何规律……

所以,分析前不妨先来看一下我们爬的数据:

比如我想成为一名数据分析师,可能会关注的是:

目前数据分析师的平均薪资水平如何,薪资的区间分布如何

各地区对分析工程师的需求量是多少,哪些地区设岗最多。

不同年限的分析工程师薪资差异如何,3年后我差不多是什么样的价位?

薪水较高的公司有哪些?

带着这样的问题,那我们的分析就有了方向,后续则是将目标拆解为实际分析展示的过程

探索数据

大概看一下数据全不全,各个字段的含义,单位(量纲)、格式是否一致,是否有空值?
各个字段含义:
岗位名称、公司名称、工作地点、薪水、工作经历和学历最低要求、公司类型、公司规模、公司领域

数据预处理

数据预处理一般包括数据清洗、数据变换、数据集成、数据归约、离散化等:
(1)数据清洗
一般包括无效值、缺失值、重复值处理;
数据是否有乱码,错位现象;
数据口径问题,两张表的关联ID名是否一致;
还有是否有统一的标准或命名,如公司名全写或缩写的区分。
(2)数据转换则是将数据规整为统一格式处理。
(3)数据集成主要是指多种数据源汇集到一起,放入一个数据仓库的过程,主要有实体识别、冗余属性识别、数据值冲突等
(4)数据归约是保证原始信息不丢失的情况下,减少分析使用的数据量,常使用方式是维归约

接下来进行数据清洗。

1、有无缺失值

数据的缺失会很大程度影响分析结果。数据缺失的原因很多,比如数据采集的时候,因为技术的原因,爬虫没有完全抓去。但工作上更多的原因是数据入库的时候就没有收集全,有没填有遗漏,这又是数据规范数据治理的话题了。一般来说,如果某一字段数据缺失超过40%~50%,就没有分析意义了,考虑删除或作其他措施。

看数据有没有缺失,只要在Excel中选中该列看计数就行。


发现salary字段有缺失,即有些公司没有表明薪酬。缺失值不多,可以直接删除处理。
点击-筛选,选择空白

全部删除就行。

2、脏数据处理

观察发现有些奇奇怪怪的职业也混进来了:

我们把职业名不含数据两个字的全部删掉:
新建一列辅助列C,C2输入公式: =IF((COUNTIF(A2,“数据”))>=1,“1”,“0”)
注:
COUNTIF函数的作用是统计某个区间内,与查询值相同的数据的个数,countif函数的语法格式
=countif(range,criteria)
参数range 表示条件区域——对单元格进行计数的区域。
参数criteria 表示条件——条件的形式可以是数字、表达式或文本,甚至可以使用通配符。


这样为0的就是要删除的:可以通过筛选功能,剔除不符合的。点击筛选->点击C列的小三角,选中0,就能看到结果了,可以看到确实跟数据分析关系不大,全选后删除。

3、重复数据

重复数据一般对唯一标识字段来处理,可是我们这里并没有类似ID值这样的属性,我们就以职位名+公司名为筛选条件:
比如:

这两条是重复的

利用函数可以灵活地达到我们想要的效果,我们在A,B字段新建一列辅助列C,在C2输入公式 =A2&B2

然后鼠标放到C2单元格的右下角,就会出现一个黑色的+号,双击这个+号,公式就会自动复制到最后一行了。
然后 点击数据–删除重复值,选择刚刚的辅助列:

就可以剔除了。
当然如果你想看一下重复列的情况,可以参考下面的做法:
再新建一列新的辅助列D,D2输入公式 =COUNTIF( C : C: C:C,C2) ,公式中绝对引用符号$的使用,绝对引用的快捷键是F4。


通过这个公式结果可以发现,所有D列运算结果大于等于2的记录(如果有更多的重复,结果会大于2)就是我们需要剔除的重复项。这个时候,使用自动筛选功能,在D列筛选出大于1所在的行,然后删除整行,再恢复到非筛选状态,就能得到最后所需的清单:

可以看到确实是重复的。。然后把辅助列删除就行。

全部做完后删除后还剩下556条数据

4、数据转换

薪水

显而易见的是薪水字段格式非常不统一,有以万/月、千/月,万/年为单位的。而且单元格格式为文本,非数值类型。所以我们统一量纲后分成最低、最高薪水两列。
通过=RIGHT(D2,3),筛选发现一共有四种单位,元/天是一般是实习生,而且只有三个,那可以直接做删除处理。

拆分为最低和最高薪水并统一单位:
新建两列:E,F
如果用公式一步到位的话就是:
对于最低薪水:通过右截取三个字符判断单位,对于数值,左截取到 “-”提取,然后用IFS来判断如果转换数值。

=IFS(RIGHT(D2,3)="万/年",LEFT(D2,FIND("-",D2,1)-1)/12,RIGHT(D2,3)="万/月",LEFT(D2,FIND("-",D2,1)-1),RIGHT(D2,3)="千/月",LEFT(D2,FIND("-",D2,1)-1)/10)

不过实际上更加方便的方式是,先用分列,根据分隔符 " -" 即可轻松分离出数值,单位通过右截取三个字符也可轻松分离

下面是综合利用辅助列和公式获得最高工资的过程:
新建一列辅助列E,直接,利用=MID(D2,FIND("-",D2)+1,LEN(D2)-3-FIND("-",D2))即可选出最高薪水(利用mid函数选取 "-"位置+1开头的到整段文本长度-3的字符即可)
接下来公式和最低薪水非常相似:(当然不利用辅助列,纯公式也可,不过这样公式会很长)

=IFS(RIGHT(D2,3)="万/年",E2/12,RIGHT(D2,3)="万/月",E2,RIGHT(D2,3)="千/月",E2/10)

最后再设置一下单元格格式为数值,并把辅助列E隐藏即可。

但是我们实际上更关心的可能是实际的薪水,再新增数据列,平均薪水,来近似代表实际的准确薪资。平均薪水=(薪水下限+薪水上限)/2,即可得到每个岗位的平均薪水,还可以自定义格式。

工作经验和最低学历

有些行的这一列为【】,即什么都没有,这样我们就当作对经验和学历没要求,即等价于一个无需经验。这里处理一下分列,细节再调整

分析过程

因为这里主要数据均是文本格式,数据又很简单,所以偏向汇总统计的计算。如果数值型的数据比较多,就会涉及到统计、比例等概念。如果有时间类数据,那么还会有趋势、变化的概念。

整体分析使用数据透视表完成,先利用数据透视表获得汇总型统计。
1、看看薪酬分布

比如大部分的工资集中在7000到1.25万这个区间。又或者加上区域的需求概况分析:

天河区的就业岗位多且工资水平较高,这也符号我们的预想,毕竟天河作为广州“经济第一强区”,天河区GDP总量一直是全市第一。不过有些职业并未标明是广州哪些区。

2、再看看经验和学历的影响:
职业招聘的话

1-3年经验的可选择范围是比较大的。再比如回答我们上面提出的问题,工作3年后我差不多是什么薪酬?
对工资直接降序排列,工资随着经验上升这个趋势还是很明显的:


对3-4年那一列降序,可以看到,3-4年经验集中的薪酬是1.5万左右。


一年经验则是集中在万元以下,八千左右的价位段。

对于本科的分析也是类似:


3、薪资变化随着经验的增长,学历影响力的大小

硕士、本科的薪资对比大专中专的差异还是有的,对于应届生,除了硕士,基本差异不大。但是后面有经验后,本科的优势就体现出来了,本科还是有用的呀,也就是说学历因素影响比重更弱,这时候更看重经验。

其他的分析过程就不多做赘述了,主要是使用数据透视表和数据透视图进行多维度(城市,学历,工作经验)的分析。当然这只是分析了广州的,我们也可以汇总多个城市的,对比各个城市。
程师大专和本科的薪资差异并不是很大,35年经验,本科稍占优势。到510年,基本拉平,也就是说学历因素影响比重更弱,这时候更看重经验。

其他的分析过程就不多做赘述了,主要是使用数据透视表和数据透视图进行多维度(城市,学历,工作经验)的分析,没有其他复杂的技巧。
整个数据分析过程最费时间的数据清理,大约占据70%,更重要的是要明确目的。

参考

《数据挖掘与机器学习》

用Excel做一次数据分析(二)——一次简单的分析相关推荐

  1. 如何用Excel做一个战斗模拟器(二)属性表

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 属性表 属性表 首先确定人物的生命.攻击.防御.暴击值与闪避值属性.用公式将其设定为与等 ...

  2. excel 两组数据交点_让科研人相见恨晚的技巧,用Excel做柱状图、箱型图及数据分析!(转载自ZSCI)...

    来源:ZSCI 让科研人相见恨晚的技巧,用Excel做柱状图.箱型图及数据分析! 面对大量的实验数据,却不知道如何快速的将自己想要的结果筛选出来.筛选后也只能做简单的数据图,绘制高级的图形又成了一个难 ...

  3. Excel做线性回归分析

    Excel做线性回归分析 概要 一.身高体重线性分析 二.父母子女身高线性分析 1.母亲身高与子女的回归分析 2.父亲身高与子女的回归分析 3.结果分析 三.总结与参考资料 1.总结 2.参考资料 此 ...

  4. 如何用Excel做一个战斗模拟器(一)升级经验表

    如何用Excel做一个战斗模拟器(二)属性表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 引言 确定战斗公式与怪物强度 确定人物升级经验 确定人物升级时间 确定升级所需经验 引言 作 ...

  5. 如何用Excel做一个战斗模拟器(三)战斗过程模拟

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(二)属性表 目录索引 定义战斗子过程 定位战斗双方基础属性 利用基础属性与战斗公式进行计算 战斗过程的运算与输出 判 ...

  6. 如何用Excel做一个战斗模拟器(四)装备的掉落与展示

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(二)属性表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 定义掉落表与装备表 怪物本身掉落装备 定义 ...

  7. excel 区间人数柱状图_原来用Excel做数据分析如此简单!

    大家好,我是你们的勾妹,今天又来送干货啦. 在上期<分享两个用Excel处理数据的神技巧>中,我们重点讲了 vlookup 函数和透视表功能,今天再来给大家介绍几个非常实用的技能. 数据分 ...

  8. 1小时轻松学会用Excel做数据分析

    如果你经常跟各类数据.表格打交道,一定明白Excel的重要性. 面对大量的数据,记录辛苦,汇总更辛苦.面对复杂的表格,搞不定,那是真搞不定:做不对,更是常态. 对职场人而言,掌握Excel,其实是在解 ...

  9. 如何使用Excel做数据分析【功能介绍】

    大家用了很久的Excel,可能还不知道如何使用Excel做数据分析吧! 若是大家已经设置,情况如下: 数据 -- 分析 -- 数据分析 若是大家未设置,设置方法如下: 开始 -- 选项 这样就可以有数 ...

最新文章

  1. poj3169(差分约束+SPFA)
  2. 又有3位顶级数学家加盟华为,都是菲尔兹奖得主
  3. 我们真的需要深度图神经网络吗?
  4. Springboot实现文件上传,并防止同文件重复上传
  5. 1251 括号(递归小练)
  6. 加工生产调度(信息学奥赛一本通-T1425)
  7. jquery捕捉ctrl+enter(回车)事件
  8. Dev C++下载地址和安装教程(图解)
  9. 电脑、手机 自动化 键鼠操作( 类似按键精灵 )
  10. 网管教程+从入门到精通软件篇
  11. ffmpeg 的下载安装
  12. 日文简历 模板
  13. python去噪函数_Python | 简单的扩音,音频去噪,静音剪切
  14. 大学一年级计算机科学与技术教材,计算机科学与技术系授课计划及课程表一年级.PDF...
  15. 前端语音转文字实践总结
  16. 最大公因数、最小公倍数求法(C++)
  17. 股票多空量化策略通过合理释放beta收益一定程度上提升了组合的收益风险比?
  18. 一文讲透,商业智能BI的未来形态,发展现状及前景分析|推荐收藏
  19. 马明哲辞任中国平安CEO;Shake Shack将进驻中国华南首站深圳 | 美通企业日报
  20. 使用vue中的transition标签实现点击缓慢展开,再点缓慢关闭

热门文章

  1. 刀塔OMG塔防1.23单机版使用方法
  2. H3C交换机如何查环路
  3. 为什呢vue组件中的data必须是函数?
  4. elasticsearch - java - 高级篇 - 封装类 - 2
  5. Max()函数与Min()函数
  6. 有个程序猿很忧桑:一个命令rm -rf/ ,他把整个公司删没了
  7. Python 绘制游戏窗口
  8. TPS77618DR PMIC - 稳压器 - 线性 正 固定 1 输出 500mA 8-SOIC
  9. Hadoop技术博文祝大家新年快乐
  10. Web前端(15)_input表单