数据分析师岗位需求分析
数据分析师岗位需求分析
【一】分析背景:
准备转行数据分析,但缺乏对该行业的一个全方位的认知,所以利用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项左右技能,当然能全部掌握的肯定能加分不少。
@我是小透明,第一次从数据采集到数据清洗最后到数据分析全流程,文中有不当之处欢迎指出斧正,谢谢!!!
数据分析师岗位需求分析相关推荐
- 手把手带你抓取智联招聘的“数据分析师”岗位!
前言 很多网友在后台跟我留言,是否可以分享一些爬虫相关的文章,我便提供了我以前写过的爬虫文章的链接(如下链接所示),大家如果感兴趣的话也可以去看一看哦.在本文中,我将以智联招聘为例,分享一下如何抓取近 ...
- 人力资源数据分析 - case 分析拉钩数据分析师岗位
一.背景 本人5年工作经验,服务同一家公司,也一直在与数据打交道.曾在XX事业部-业务策略中心带数据小组,进行扩店策略.门店运营和经营指标体系建设.目前在我司研究院做BI.数据挖掘.近期正在寻求改变, ...
- 数据分析师岗位热招!你也有希望进大厂~
数据分析师岗位热招!你也有希望进大厂~ 近日,阿里云表示2020年将扩招5千名员工.值得一提的是,数据分析师等相岗位的招聘,也成为了本次招聘的重头戏. 据介绍,包括阿里巴巴计算平台事业部实时计算部.基 ...
- Python数据可视化 - 使用Dash库制作杭州数据分析师岗位招聘情况可交互网页报告(附代码下载)
dash dash不同于flask或者Django,具备少量的前端知识即可制作可视化网页,下图为本人制作的数据分析师岗位招聘情况可视化网页. 文末附网盘下载经过清洗后的数据与可视化网页的代码. 交互 ...
- 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法
Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...
- 51Job大数据分析师岗位项目
51job中大数据分析师岗位情况分析(在Jupyter Notebook中处理) 第一步:载入库.搭建环境,载入并观察数据 In [] import pandas as pd import numpy ...
- 高级数据分析师岗位的职责描述
高级数据分析师岗位的职责描述1 职责: 1.搭建和完善数据中心的数据指标体系与监控预测体系,并推动系统化实现; 2.负责对市场.行业.竞争对手.产品.客户.业务运营等方面数据的收集.分析,完成 ...
- 数据分析师—岗位分析(峰池)
经常觉得很奇怪怎么辣么多数据分析师的广告,字节的峰池大佬是觉得未来该岗位可能消亡(康康大佬怎么说的同时了解下这个岗位,本文不代表本人观点,请客观理性看待=.=). 突然想起拿了京东算法岗ssp的上财学 ...
- 蓬莱小课:一线城市数据分析师岗位薪酬有多少?
想要从事数据分析师这个岗位,那自然首先需要对这个岗位有所了解.最直接.最真实的方式就是从企业那里获得需求讯息,这样才最能够指导自己的学习方向和简历准备. 转行疑惑:我不是计算机专业,能学好数据分析吗? ...
- 某招聘网站的数据分析师岗位分析
数据采集于拉钩上的数据分析师岗位,要对数据分析师这个岗位有所了解,最直观的方式就是获取企业那里获得数据分析师的岗位信息,然后进行一些探索和分析,以此来加深自己对数据分析师这个岗位的认识 简要介绍一下本 ...
最新文章
- 多家IT企业通过CNNIC“可信网站”验证
- apache服务Forbidden 403问题精彩总结
- WinForm实现Rabbitmq官网6个案例-Topics
- VMware、Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务——Pivotal Container Service(PKS)...
- java 跳转action_JS 跳转到指定Action | 学步园
- 10个常用python标准库_【循序渐进学Python】11.常用标准库
- php获得昨天零时的时间戳,php 获取时间今天明天昨天时间戳
- H5 WebSocket java服务端push
- 《程序猿的搬砖生活》九、那些伙伴和生活,既是人生也是回忆
- 4.卷1(套接字联网API)---基本TCP套接字编程
- fpt指的是什么_ftp是指的什么?
- StanfordDB class自学笔记 (15) Recursion
- 浪潮 服务器数据安全管理系统,浪潮SSC运维安全管控系统
- LimeSDR系列产品介绍(一):板卡级(Board Level)产品
- 如何在计算机管理设置开机密码,电脑怎么设置开机密码 开机密码设置步骤
- uniapp switch按钮的使用开关按钮效果demo(整理)
- 了解mybatis源码手写mybatis
- android 获得ram大小,Android中获取(RAM)总运存大小和可用运存大小
- 跳槽入职字节跳动,给到20K16薪,只因比别人更懂多线程与高并发
- (17) 基于时空网络的出租车OD需求预测