数据分析实战的简单尝试--职位信息分析

近年来,“大数据”和“人工智能”一直是人们日常生活中热议的话题,而随着智能技术与科技的不断应用,AI领域未来的发展也被普遍看好,越来越多的企业也开始涉足AI。伴随AI发展也引发了一类相关职业的兴起--数据分析师。那么要想成为一名数据分析师必须具备什么样的技能,企业对数据分析师又有什么样的要求呢?

为了解答这些问题(当然更多的是为了本人的实战练习),本人利用爬虫,根据关键字“数据分析”从拉钩网提取了北、上、广、深4个城市的1658条职位信息,利用这些职位信息来分析数据分析师这一职位对于应聘者的要求。

首先需要从MYSQL数据库导入职位信息,对数据库中的职位信息表进行查询,得到了以下信息:

可以看到,所爬取的职位信息包括:工作年限、学历、薪资范围、工作职责和岗位要求等信息。利用Python中的pymysql库将数据导出,代码如下:

import pymysql
import pandas as pda
'''建立连接信息'''
connect=pymysql.connect(user='username',host='hostname',password='yourpass',db='db_name',charset='utf8')
'''导入数据'''
sql='SELECT * from job_list'
data=pda.read_sql(sql,connect)

接下来就要对数据进行预处理。由于此处数据量较少而且在数据库中已经对相关字段进行了限制,所以此处不再展示数据预处理过程。

学历分布分析:

对职位信息中的工作年限与学历两个字段的进行统计,再通过Python的matlibplot库对统计结果进行可视化,得到如下结果:

从岗位所要求的最低学历要求可以看出,90%的岗位需要的是本科或本科以上的学历,而其中1408条职位信息需要应聘者是本科学历,可见数据分析作为一门技术类的工作,对于从业者的学历还是有比较高的要求。

工作年限分布分析:


从所要求的工作年限的分布来看,数据分析师这一职位对于应届生来说并不算友好(一个可能的原因是拉钩网主要针对的是社会招聘,其发布的职位对于工作经验有一定要求);而1-5年的工作经验是企业比较偏好的,占到所有岗位的76%。数据分析相对于数据挖掘等其他相关智能技术来说,技术要求并不高,所需要的工作经验并不高。

薪资分布分析:

总体薪资分布:


从薪资分布来看,数据分析由于其技术含量的因素,其薪资水平并不能算太高(这里是相对于本人了解的北上广深其他同类技术的职位来说),但其也有部分职位月薪在25k以上,甚至35k以上,可见这一职位还是有不错的发展前景的。

接下来我们根据工作年限的来分布看看其薪资分布情况:



可以看到,对于不同的工作年限而言,其分布大致相同;相对于1-5年类别的职位,工作年限在一年以下或者工作年限没有限制的职位,月薪在15K以下的比例有所上升;而在5-10年类别的职位当中,出乎本人预料的是月薪在25k以上的职位并非大部分在此类别中,月薪大于35K的职位仅有4个,却有215个月薪在25k以上的职位在1-5年的工作年限类别中,其中大于35k的41个,所以工作经验并不是决定薪资高低的决定性因素(应聘者可能更看重的是你具体项目的经历)。

再来看学历水平的薪资分布情况:

通过学历水平的薪资分布结果分析,其结论类似于工作年限薪资分布:学历要求越低,15k以下薪资所占比例越高,但是对于大于25k的职位来说,并不是学历越高越好。

看完薪资、学历、工作年限的分布情况,现在让我们来分析具体的工作职责和岗位要求。首先来看看职位描述的词云图:


具体实现步骤:首先将数据导入,选择字段职位描述,并利用Pandas将数据合并;然后利用Python的分词工具jieba分词对文本分词,再利用停用词库过滤掉常见的停用词,并将词语整理成固定的格式,最后读取本地图片,利用Python的wordcloud模块绘制词云图并以指定形状输出,附上代码:

from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt
from PIL import Image
import numpy as npy
import pandas as pda
import pymysql
import re
desc=data['positionDes']
text=''
for i in range(0,len(desc)):
	text+=desc[i]
pat=['<span class="">','<li>','<p class="">','</span>','</li>','<br class="">','<strong>','</strong>','<ol class=" list-paddingleft-2">','</ol>','<span>','<a>']
for i in range(0,len(pat)):
	data_i=text
	cp=re.compile(pat[i])
	text=re.sub(cp,'',data_i)
stopword=['工作职责','职位要求','岗位要求','任职资格','岗位职责','任职','\n',' ']
typetxt=open('本地停用词库.txt')
for word in typetxt:
	stopword.append(word.strip())	
data_cut=jieba.cut(text)
delete_word=[]
data_adj=''
for item in data_cut:
	if item in stopword:
		delete_word.append(item)
	else:
		data_adj+=item+' '	
maskimg=npy.array(Image.open('本地图片地址'))
wc=WordCloud(font_path='simhei.ttf',background_color='white',max_words=350,mask=maskimg,max_font_size=70)
wc.generate(data_adj)
plt.imshow(wc)
plt.axis("off")
plt.show()

从词云图可以看出,数据、产品、需求、Python、SQL等词语在职位描述中出现频率较高,也能够大概地了解到数据分析岗位涉及的具体内容。

最后,让我们通过职位描述来看看数据分析岗位到底需要应聘者掌握哪些技术或者工具。这里分析了常见的数据分析工具或技能,具体包括: Python、R、Java、C、C++、shell六种编程语言,Excel、Matlab、SPASS、SAS四种分析工具,MYSQL、Oracle、Nosal三种数据库技术以及大数据技术Spark、Hadoop及其组建Hive和MapReduce。

先让 我们来看分布:

从分布可以看出,MYSQL、R、Python是排行前3的工具,也是该职位普遍比较需要掌握的技能。

然后,我们利用关联算法简单探究各个工具之间的关联关系。这里我们利用Apriori算法来生成关联关系,这里我们设置了指出度为0.25,置信度设置了0.6,代码运行结果如下:

关联度较高的还是Python、R、与MYSQL。R-->Python和Python-->R两组支持度相等,且置信度都达到了0.7,可以看出两者成对出现的概率非常大;Python-->R-->MYSQL这组的置信度高达0.79,当Python和R同时出现时,该职位很大可能还需要MYSQL技术。通过查看具体的职位信息发现,大多数岗位这3类技能出现形式为:(Python/R,MYSQL)即需要掌握Python或者R两者编程工具中的一种或两种,同时还需要掌握MYSQL数据库技术。这样就与我们的关联度分析结果不谋而合了,可见,Python或R以及MYSQL数据库技术,是当前数据分析所需的核心技能,也是大多数企业在应聘时所看重的技能。

这篇简单的数据分析只是本人在业余时间的一个简单练习,目的只是为了熟悉数据分析大致流程。由于个人时间的原因,其中还有诸多不完善的地方,比如数据的来源、数据量、分析能力等方面,这也导致了分析结果的可靠性不高,也不具有任何的参考意义。作为这一领域的小白,只是纯粹的喜欢数据分析及相关技术,文中的不足和错误也欢迎各位的批评和建议,多多包涵。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值