数据分析师岗位需求分析

【一】分析背景:
准备转行数据分析,但缺乏对该行业的一个全方位的认知,所以利用Python爬虫爬取了当天前程无忧上2020/5/18数据分析师全文的信息,分析数据分析师岗位的相关信息。因为快半年没写爬虫了,中途出了好几次问题,最后第二天才把数据爬下来整理了(爬虫过程略,感兴趣的可以私信我共同讨论)。

【二】数据集描述
爬虫没有写的很好,所以数据看起来没那么友好。数据集总共10个字段,总共8028条数据.
数据集字段名都是中文,相关信息一目了然。不再做赘述。

【三】数据导入
1)python包导入及数据读取

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import matplotlib,jieba,chardet,re
from wordcloud import WordCloud
orginaldata = pd.read_excel('.\Data\\数据分析师全文.xls')

2)数据简述

orginaldata.info()
orginaldata.shape

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 8028 entries, 0 to 8027
Data columns (total 10 columns):
职位名称 8028 non-null object
公司 8028 non-null object
工作地点 8028 non-null object
薪水 7398 non-null object
福利待遇 5801 non-null object
公司类型 7904 non-null object
公司规模 7536 non-null object
公司行业 7905 non-null object
其他信息 7905 non-null object
岗位详情 7905 non-null object
dtypes: object(10)
memory usage: 627.3+ KB
(8028, 10)

可以看出,数据集有8028行10列数据,其中只有“职位名称”,“工作地点”及“公司”三个字段没有缺失值。
回溯之前爬虫过程;空值的原因,①是该职位没有写该类信息 ②详情页跳转到公司的官网,爬虫没能正式生效。

3)查看数据基本构成

orginaldata.head()


可以看出数据很脏,需要花大力气清洗。

【四】数据清洗
1)岗位分布城市
数据集中的工作地点有些会带城区名,会影响我们对于城市的分布的判断,分列提取出工作城市。

data=orginaldata
data["工作城市"] = [i[0] for i in data0["工作地点"].str.split("-")]
data["工作城市"]


2)从其他信息中提取工作经验要求及学历要求。
①工作经验和学历要求提取

data['其他信息'].isnull().sum()


其他信息中有123条空值。

工作经验

ex = []
temp1 = data["其他信息"].str.split("|")
for i in temp1:try:if i[1].find("经") != -1 or i[1].find("生") != -1:ex.append(i[1])else:ex.append("")except:ex.append("")

学历要求

edu=[]
x=1
for i in temp1:if type(i) == list:try:if i[2].find("本科") != -1 or i[2].find("硕士") != -1 or i[2].find("大专") != -1 or i[2].find("高中") != -1 or i[2].find("中专") != -1 or i[2].find("博士") != -1 or i[2].find("初中") != -1 or i[2].find("中技") != -1:edu.append(i[2])x+=1elif i[1].find("本科") != -1 or i[1].find("硕士") != -1 or i[1].find("大专") != -1 or i[1].find("高中") != -1 or i[1].find("中专") != -1 or i[1].find("博士") != -1 or i[1].find("初中") != -1 or i[1].find("中技") != -1:edu.append(i[1])else:edu.append("")except:passelse:edu.append("")

因为其他信息有些描述是不完整及有空值存在,遍历将相关信息存入列表中。
将结果列表重新转换为pandas能处理的数据类型

experience = pd.Series(ex)
education = pd.Series(edu)
data["工作经验"] = experience
data["学历要求"] = education

该处理过程可能会有一些数据未能考虑全面,但其数量较少,可以将其忽略。

②最低和最高薪水计算
薪水字符串分列

temp2 = data["薪水"].str.split("-")

创建最高薪水和最低薪水列表

income=[]
for abc in temp2:if type(abc) == list:try:if abc[0][-3:] == "元/天":income.append([(float(abc[0][:-3]))*30,(float(abc[0][:-3]))*30])elif abc[0][-5:] == "千以下/月":income.append([(float(abc[0][:-5]))*1000,(float(abc[0][:-5]))*1000])elif abc[0][-5:] == "万以上/年":income.append([(float(abc[0][:-5]))*10000,(float(abc[0][:-5]))*10000])elif abc[1][-3:] == "万/年":income.append([float(abc[0])*10000/12,(float(abc[1][:-3])*10000)/12])elif abc[1][-3:] == "千/月":income.append([float(abc[0])*1000,(float(abc[1][:-3])*1000)])elif abc[1][-3:] == "万/月":income.append([float(abc[0])*10000,(float(abc[1][:-3])*10000)])else:print(abc)except:print(abc)else:income.append("")

数据转换为pandas能处理的数据类型

low =[]
high = []
for i in income:try:low.append(int(i[0]))high.append(int(i[1]))except:low.append("")high.append("")
data["最低薪水"] = pd.Series(low)
data["最高薪水"] = pd.Series(high)

④岗位详情数据清洗
主要是清洗岗位数据中的空格及前面的特殊字符

workinfo = []
for i in data["岗位详情"]:try:workinfo.append(i[15:].replace(" ",""))except:workinfo.append("")

将workinfo信息转换为Padas能处理的数据类型

data["职位详情"] = workinfo
data["职位详情"]

⑤最后根据整理将数据重排

data_new = data.loc[:,['职位名称','公司','工作城市',"福利待遇",'公司类型','公司规模','公司行业','最低薪水','最高薪水','工作经验','学历要求','职位详情']]
data_new.head()


【五】数据分析与可视化

①数据分析师岗位前十需求的城市分布

#前面代码是为了解决中文内容乱码的********************
#指定默认字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family']='sans-serif'
#解决负号’-‘显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False
#************************************************
data_new["工作城市"].value_counts().head(10).plot(kind="bar",figsize=(12,8),title="城市岗位需求分布")

从上图中可以看出,数据分析师岗位的需求在一线城市大于其他城市。去北上广深找数据分析的机会最大。其他内地准一线城市机会也很大。

②数据分析师岗位对于学历要求

data_new["学历要求"].value_counts().head(10).plot(kind="barh",color = "tan",figsize=(10,6),title="学历与岗位需求")


可以看出数据分析师这个岗位学历要求普遍大专以上,所以好的学历是数据分析必不可少的敲门砖。

③需求公司的行业分布(计算数据分析师岗位需求前十的公司)

data_new["公司行业"].value_counts().head(10).plot(kind="bar",figsize = (12,9),color="green",title="招聘公司行业分布",grid=True)


数据分析师行业分布很广,供求职者选择空间较大。其中又以电子商务互联网,计算机和金融是数据分析岗位需求最高的公司,拥有与之相关工作经验找到数据分析和机会最高。

④查看各个学历工资分布(这里我们以最低工资为基准)

for i in set(data["学历要求"]):print("**"*10+i+"**"*10)data_new[data_new["学历要求"]==i]["最低薪水"].value_counts().head(10).plot(kind="bar",color="yellowgreen",title=i+"的最低薪水分布")plt.show()


可以看出,随着学历的增加,最低薪资水平有极大的提升。说明好的学历更容易获得高薪水。

⑤查看公司行业与最低薪资的关系(因为我们便于观察,我们只查看岗位需求最高前五类公司)

先计算出数据分析师岗位需求前五的行业

data_new["公司行业"].value_counts().head()

薪资分布于行业

for i in ['互联网/电子商务','计算机软件','金融/投资/证券','专业服务(咨询、人力资源、财会)','快速消费品(食品、饮料、化妆品)']:print(i)data_new[data_new["公司行业"]==i]["最低薪水"].value_counts().plot(kind="bar",figsize = (8,6),color="yellowgreen",title=f"{i}行业的最低薪水分布")plt.show()


可以看出在互联网企业的最低薪资水平要比其他企业要高,找工作的时候我们应该重点关注互联网企业的招聘,互联网更容易获得高薪资。

⑥工作经验与薪水之间的关系

for workex in set(data_new["工作经验"]):data_new[data_new["工作经验"]==workex]["最低薪水"].value_counts().plot(kind="bar",figsize = (8,6),color="orange",title=f"{workex}的最低薪水分布")plt.show()







通过上图图表分析,可以看出随着经验的增长,工资是有比较大的提升。数据分析师对工作经验的要求还是比较高的,对行业和业务熟悉的人薪资会更高,同时也说明这个职业有很大的上升空间,“越老越值钱”,看重行业的积累。

⑦分析前十大城市的薪资竞争力(忽略异地招聘的信息)

for city in ['上海','广州','深圳','北京','成都','杭州','武汉','西安','合肥','南京']:data_new[data_new["工作城市"]==city]["最低薪水"].value_counts().plot(kind="bar",figsize = (8,6),color="limegreen",title=f"{city}行业的最低薪水分布")plt.show()




由此可以看出,相同岗位在一线城市的薪资水平会更高。北上广深是数据分析岗位的首选。其次是成都和杭州。

⑧岗位描述中更看重的是什么能力

清洗数据获取岗位描述相关信息做词云图

temptext = []
for i in data["岗位详情"].dropna():temptext.append(i[10:])
jobdetail = "".join(temptext).replace("岗位职责","").replace("工作职责","").replace("任职要求","").replace("任职资格","").replace("岗位要求","").replace("数据分析师","")
cloudword = WordCloud(background_color = "lightgrey",width=600,height=400,font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",margin=3)
plt.figure(figsize=[20, 15])
plt.imshow(cloudword.generate(jobdetail))


对于数据分析师这个岗位,数学统计学,数据敏感,本科以上学历及沟通交流能力是大部分公司的要求。
因未找到能同时显示中英文的词云图,所以只能分开讨论。下面查看工具方面的词云图。

keyword = re.sub(u"([^\u0041-\u007a])","","".join(temp3))
toolkeyword = WordCloud(background_color = "lightgrey",width=600,height=400,font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",margin=3)
plt.figure(figsize=[10, 6])
plt.imshow(toolkeyword.generate(keyword))


可以看出,SAS,SQL,Python,SPS和Excel是需求最大的几个工具,工具方面应该在这些软件上多下功夫。

【六】分析总结
本文从各方面分析了前程无忧上关于数据分析师岗位需求的分析,对数据分析师有如下几点总结:

1)数据分析的岗位需求在一线城市(北上广深)的需求是最大的,其次是国内其他准一线城市。数据分析是一个新兴的行业,在越发达的城市,就有更多的机会。

2)数据分析师岗位有着较高的学历要求,本科及以上的学历占据了83.5%以上岗位需求,所以好的学历是进入该行业必不可少的敲门砖。

3)从需求岗位行业来说,需求最大的就是互联网,电子商务,金融,计算机软件及咨询服务。究其原因是因为这些行业产生了大量数据,需要做一个整理归纳分析,所以有更多的岗位需求。

4)从需求岗位学历与薪资关系可以看出,薪资分布于学历呈现一个递增的趋势。好的学历更容易获取更高的薪资待遇。

5)对于数据分析师这个岗位来说,互联网电子商务及计算机软件这两个行业的薪资分布更好,作为数据导向行业,数据分析师的薪资待遇还是很可观的。

6)需求岗位对于工作经验的要求,大部分公司要求1-5年的工作经验。但是随着工作经验增加,其薪资分布也呈现一个逐步稳健提升的趋势,说明数据分析师是对工作经验的要求还是比较高的,对行业经验积累的人薪资会更高,同时也说明这个职业有很大的上升空间,“越老越值钱”。

7)从薪资结构来看,北上广深一线城市的薪资竞争更大,薪资分布更好。在这些城市更容易获得更高的资待遇。想要深耕于此行业,北上广深是首选。

8)从岗位信息的词云图可以看出,统计学,相关经验及数据敏感是非常需要的软实力。当然本科及以上的学历能为简历加分不少,工具类的软件包含SAS,SQL,Python,SPS和Excel。个人觉得最少能掌握2项左右技能,当然能全部掌握的肯定能加分不少。

@我是小透明,第一次从数据采集到数据清洗最后到数据分析全流程,文中有不当之处欢迎指出斧正,谢谢!!!

数据分析师岗位需求分析相关推荐

  1. 手把手带你抓取智联招聘的“数据分析师”岗位!

    前言 很多网友在后台跟我留言,是否可以分享一些爬虫相关的文章,我便提供了我以前写过的爬虫文章的链接(如下链接所示),大家如果感兴趣的话也可以去看一看哦.在本文中,我将以智联招聘为例,分享一下如何抓取近 ...

  2. 人力资源数据分析 - case 分析拉钩数据分析师岗位

    一.背景 本人5年工作经验,服务同一家公司,也一直在与数据打交道.曾在XX事业部-业务策略中心带数据小组,进行扩店策略.门店运营和经营指标体系建设.目前在我司研究院做BI.数据挖掘.近期正在寻求改变, ...

  3. 数据分析师岗位热招!你也有希望进大厂~

    数据分析师岗位热招!你也有希望进大厂~ 近日,阿里云表示2020年将扩招5千名员工.值得一提的是,数据分析师等相岗位的招聘,也成为了本次招聘的重头戏. 据介绍,包括阿里巴巴计算平台事业部实时计算部.基 ...

  4. Python数据可视化 - 使用Dash库制作杭州数据分析师岗位招聘情况可交互网页报告(附代码下载)

    dash dash不同于flask或者Django,具备少量的前端知识即可制作可视化网页,下图为本人制作的数据分析师岗位招聘情况可视化网页. 文末附网盘下载经过清洗后的数据与可视化网页的代码. 交互 ...

  5. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  6. 51Job大数据分析师岗位项目

    51job中大数据分析师岗位情况分析(在Jupyter Notebook中处理) 第一步:载入库.搭建环境,载入并观察数据 In [] import pandas as pd import numpy ...

  7. 高级数据分析师岗位的职责描述

        高级数据分析师岗位的职责描述1 职责: 1.搭建和完善数据中心的数据指标体系与监控预测体系,并推动系统化实现; 2.负责对市场.行业.竞争对手.产品.客户.业务运营等方面数据的收集.分析,完成 ...

  8. 数据分析师—岗位分析(峰池)

    经常觉得很奇怪怎么辣么多数据分析师的广告,字节的峰池大佬是觉得未来该岗位可能消亡(康康大佬怎么说的同时了解下这个岗位,本文不代表本人观点,请客观理性看待=.=). 突然想起拿了京东算法岗ssp的上财学 ...

  9. 蓬莱小课:一线城市数据分析师岗位薪酬有多少?

    想要从事数据分析师这个岗位,那自然首先需要对这个岗位有所了解.最直接.最真实的方式就是从企业那里获得需求讯息,这样才最能够指导自己的学习方向和简历准备. 转行疑惑:我不是计算机专业,能学好数据分析吗? ...

  10. 某招聘网站的数据分析师岗位分析

    数据采集于拉钩上的数据分析师岗位,要对数据分析师这个岗位有所了解,最直观的方式就是获取企业那里获得数据分析师的岗位信息,然后进行一些探索和分析,以此来加深自己对数据分析师这个岗位的认识 简要介绍一下本 ...

最新文章

  1. 多家IT企业通过CNNIC“可信网站”验证
  2. apache服务Forbidden 403问题精彩总结
  3. WinForm实现Rabbitmq官网6个案例-Topics
  4. VMware、Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务——Pivotal Container Service(PKS)...
  5. java 跳转action_JS 跳转到指定Action | 学步园
  6. 10个常用python标准库_【循序渐进学Python】11.常用标准库
  7. php获得昨天零时的时间戳,php 获取时间今天明天昨天时间戳
  8. H5 WebSocket java服务端push
  9. 《程序猿的搬砖生活》九、那些伙伴和生活,既是人生也是回忆
  10. 4.卷1(套接字联网API)---基本TCP套接字编程
  11. fpt指的是什么_ftp是指的什么?
  12. StanfordDB class自学笔记 (15) Recursion
  13. 浪潮 服务器数据安全管理系统,浪潮SSC运维安全管控系统
  14. LimeSDR系列产品介绍(一):板卡级(Board Level)产品
  15. 如何在计算机管理设置开机密码,电脑怎么设置开机密码 开机密码设置步骤
  16. uniapp switch按钮的使用开关按钮效果demo(整理)
  17. 了解mybatis源码手写mybatis
  18. android 获得ram大小,Android中获取(RAM)总运存大小和可用运存大小
  19. 跳槽入职字节跳动,给到20K16薪,只因比别人更懂多线程与高并发
  20. (17) 基于时空网络的出租车OD需求预测

热门文章

  1. 关于零信任的 “灵魂” 12问,企业未来如何适配“零信任”?
  2. mac空格键跟删除键失灵
  3. hen Content must be served over https解决方案
  4. 多种Map简单使用和测试
  5. 【UI设计】扁平化设计之流行色值
  6. Excel表格文件,.xls和.xlsx格式的区别
  7. Excel 电子表格文件格式剖析
  8. python的中介效应 调节效应
  9. c语言中正确的常量表达式,C语言常量变量表达式
  10. 2017年油价调整时间表