数据分析师市场需求研究

数据分析师市场需求研究

本文是关于数据分析师市场需求的小研究。

在这篇分析里,我主要想解决两个问题:

  1. 哪一类人市场需求最高
  2. 什么因素能影响工资水平

这里就以深圳市的数据分析岗为例,分析一下数据分析师的市场需求状况。

### 拉勾数据分析招聘岗位分析 ###

# 本文针对拉勾网上深圳数据分析岗位的招聘信息做分析。
# Programmer: Dan Qin
# Date: 2019.08.30

# import libraries
# 基础包
import pandas as pd
import matplotlib.pyplot as plt

# 文件处理包
import json
import xmltodict
import os
import fnmatch

# 分词统计与词云包
import jieba
import jieba.analyse
from wordcloud import WordCloud

import re

# 对pandas和matplotlib的显示设置
pd.set_option('display.max_columns', 20)
plt.rcParams.update({
   "font.family":"SimHei"})
plt.style.use("tableau-colorblind10")
%matplotlib inline

1. 数据提取

万年不变的第一步,做分析前得先有数据。
本分析所用数据是借助爬虫工具从拉勾网爬取的,详细的爬取教程请参照下面的链接。

# 利用集搜客爬取拉勾网上深圳数据分析岗招聘信息,需采用层级爬取
# 基础爬取教程参见:https://zhuanlan.zhihu.com/p/38884768 ; 层级爬取教程:https://www.gooseeker.com/doc/article-75-1.html
# 爬取源数据为xml格式

# 将xml文件转为json方便处理
def xml_to_json(input):
    '''
    Convert Xml to Json file.
    :param input: input file path, xml
    :return: NaN, write json into file
    '''
    # load xml
    if not os.path.exists(input.replace(".xml", ".json")):
        with open(input, 'r', encoding = "UTF-8", errors = "ignore") as f:
            xmlString = f.read()

        # convert xml to json
        output = input.replace(".xml", ".json")
        jsonString = json.dumps(xmltodict.parse(xmlString), ensure_ascii=False)
        with open(output, 'w', encoding="utf-8") as f:
            f.write(jsonString)
# 将爬取数据整合成dataframe

# 获取文件夹中的所有文件
path = "data/拉勾/"
filenames = []
for file in os.listdir(path):
    if fnmatch.fnmatch(file, "*.xml"):
        filenames.append(file)

# 用来放数据的df
df = pd.DataFrame(columns = ["公司名","行业","融资","公司网址","薪资","职位",
                             "经验","学历","员工规模","关键词","发布时间","职位诱惑",
                            "职位描述","地点"])


# 遍历文件名
for file in filenames:
    file = path + file
    # 将xml转为json
    xml_to_json(file)
    
    # 将json转为df
    output = file.replace(".xml", ".json")
    with open(output,encoding="utf-8") as json_data:
        d = json.load(json_data)
    
    data = pd.io.json.json_normalize(d["extraction"]["数据分析详情"]["item"])
    
    # 合并df
    df = pd.concat([df, data], sort = "False")
df.head(1)
公司名 公司网址 关键词 发布时间 员工规模 地点 学历 经验 职位 职位描述 职位诱惑 薪资 融资 行业
0 路行通 http://www.klicen.com 数据分析 2019-09-27 发布于拉勾网 500-2000人 深圳 -\n 南山区 -\n ... 本科及以上 / 经验3-5年 / 数据分析师(碰撞场景探索与... 岗位职责:\n1.负责车辆碰撞场景的深度探索及数据建模。\n2.负责车辆碰撞数据的新特征挖掘... 人性化管理,稳定平台,温馨化午餐 14k-20k 不需要融资 移动互联网,消费生活
# check df
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 216 entries, 0 to 0
Data columns (total 14 columns):
公司名     216 non-null object
公司网址    216 non-null object
关键词     215 non-null object
发布时间    216 non-null object
员工规模    216 non-null object
地点      216 non-null object
学历      216 non-null object
经验      216 non-null object
职位      216 non-null object
职位描述    216 non-null object
职位诱惑    216 non-null object
薪资      216 non-null object
融资      216 non-null object
行业      216 non-null object
dtypes: object(14)
memory usage: 25.3+ KB

从拉勾网上我们爬取了深圳市数据分析岗位的招聘信息,共216条,包括公司名称、员工规模、行业、学历要求、经验要求、薪资水平等属性。为了方便下一步分析,接下来需要对这些属性进行标准化处理。

2. 数据清洗

这里的数据清洗分几个步骤进行:

  1. 清理重复行。对于重复发布的岗位信息,我们只需要保留一条记录。
  2. 清除多余文字。将各属性值中多余的描述性文字和换行符去掉。
  3. 拆分薪资。这里给出的薪资是一个范围,我们将它拆成薪资上限和薪资下限,方便分析。
  4. 提取地区。从地点描述中提取出区划名。
# 清理重复行
df_clr = df.drop_duplicates({
   "公司名","职位","职位描述"}).copy()

# 清除多余字符
df_clr["员工规模"] = df_clr["员工规模"].str.replace("人","")
df_clr["经验"] = df_clr["经验"].str.replace(" /","")
df_clr["经验"] = df_clr["经验"].str.replace("经验","")
df_clr["学历"] = df_clr["学历"].str.replace("学历","")
df_clr["学历"] = df_clr["学历"].str[:2]
df_clr["职位描述"] = df_clr["职位描述"].str.replace(" ","")
df_clr["职位描述"] = df_clr["职位描述"].str.replace("\n","")

# 拆分薪资
df_clr["薪资"] = df_clr["薪资"].str.replace("k","000")
df_clr[
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值