招聘数据数据分析及可视化
数据来源
本数据来自天善智能的数据分析课程提供的数据分析师相关的招聘数据
前言
由于2021春招已经启动很久了,最近为了找工作将之前完成的数据分析项目复现,同时也复习一下excel和python以及tableau相关知识。
本文根据提供的招聘信息数据进行数据分析以及可视化,使用的工具有excel,jupyter,以及tableau,展示部分代码以及数据分析过程。
一、观察数据
进行数据分析首先要知道数据是什么,有哪些内容,结构是什么样的,因此先将已有的csv文件通过excel打开观察数据,然后可通过excel进行简单的数据处理。
我们来看下数据:可以看到有十二个字段,其中比较重要的有positionId、city、eduaction、salary、workYear这几个字段我们后续的分析中会经常用到。
删除重复值
如果这些数据存在重复值,这些重复值可能会对我们的分析产生一定的干扰,所以我们需要删除重复值。由于每个职位的positionId都是唯一的所以我们可以根据这个来判断是否存在重复值,如果存在则删除重复值。
由于提供的数据比较干净,未发现重复值。
数据加工
我们可以看到由于薪水是以上下限显示的,不利于后续的分析,故将薪水分成三列,分别为下限,上限以及平均薪水。这个操作在excel里操作比较简单,当然也可以在利用python进行处理。这里我选择在excel里进行划分。
这里我使用find函数将salary中k的位置找出来,再用left和right函数将薪资下限和上限截取出来:
对值进行处理,将得到的结果全部转换为数值。然后利用替换将k给替换成空,其中可能会存在其它干扰数据这里我全部替换为空值。处理完之后顺便将平均薪资求出来,便于后续分析。
这样excel对数据的处理就差不多了,接下来就是把数据导入到python里进行分析和可视化。当然利用excel对处理后的数据进行数据透视也可以,这里我选择使用python。
二、利用python进行数据分析和可视化
1.引入库
引入数据分析常用库,代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
2.读入数据
代码如下:
data = pd.read_csv('dataanalyst.csv')
data.head()
观察描述统计,了解数据大概信息
代码如下:
data.describe(include=['O'])
这里我们可以大概了解这个数据表一共有五千多条数据,city有13个,其中北京出现的次数最多,也就是北京提供的职位数最多。还可以看到学历要求是本科的最多,工作要求是3-5年的最多等等。
data.describe()
这里我们主要是看薪资方面的描述统计,其中包括平均值,中位数,标准差等数据。
3.数据预处理
杂乱的数据并不利于我们的分析,我们需要对数据进行处理来获取可以用于可视化的干净数据。
3.1数据清洗
数据清洗的主要内容包括: 重复值, 缺失值以及空值的处理。
3.1.1 删除重复值
由于我们在载入之前就已经删除了重复值,这里我们可以略过。
3.1.2缺失值处理
我们先看一下哪些字段存在缺失值
#计算每个特征中的缺失值个数
data.isnull().sum()
我们可以看到firstType,secondType,positionLables,top 四个字段存在少量缺失值。
在pandas中对缺失值的处理方法有:
-
利用均值等集中趋势度量填充
-
利用统计模型计算出的值填充
-
保留缺失值
-
删除缺失值
由于这些数据存在极少量的缺失值,对数据几乎没有影响。这里我选择通过描述统计中出现最多的值来填充。
data.firstType.fillna(value = '技术',inplace= True)
data.secondType.fillna(value = '后端开发',inplace= True)
data.positionLables.fillna(data.positionLables.mode()[0], inplace = True)
data.top.fillna(value =21.0,inplace = True)
最后检查一下还有没有缺失值
3.2数据加工
这里我们需要加工的是salary字段,需要将薪资的上限和下限划分出来,同时需要求出平均工资。之前我们已经在excel里面处理过了,这里可以忽略。
到现在我们的数据处理就完成了,接下来就是可视化分析环节。
4.数据可视化
4.1城市岗位数量
data.groupby(by ='city').positionId.count().sort_values(ascending=False)
我们可以看到北京提供的岗位数量最多,上海、深圳、杭州也比较多。所以一线城市对数据分析师的需求量还是比较大的。
我们再来看下每个城市提供的岗位对学历要求是怎样的,这里我们需要先建立一个数据透视表:
data.pivot_table(index = 'city',
columns = 'education',
values = 'avg',
aggfunc = 'count')