【数据可视化-12】数据分析岗位招聘分析

news2025/1/17 21:06:50

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-12】数据分析岗位招聘分析

  • 引言
  • 一、数据集简介
  • 二、数据预处理
    • 2.1 加载分析需要的库
  • 2.2 导入数据
  • 2.3 数据清洗
  • 三、可视化分析
  • 3.1 各个城市数据分析岗位招聘数量情况
  • 3.2 数据分析师在各城市薪资水平情况
  • 3.3 薪资和城市分析
  • 3.4 热门城市薪资箱线图
  • 3.5 学历与薪资数据分析
  • 3.6 学历与岗位需求的数据分析
  • 3.7 工龄与薪资数据分析
  • 3.8 工龄与市场需求分析
  • 3.9 数据分析岗技能需求情况
  • 四、结论与建议

引言

  在数字化时代,数据分析已成为各行各业不可或缺的重要技能。为了深入了解当前市场对数据分析师岗位的需求情况,我们从BOSS直聘平台上爬取了一份关于数据分析师招聘信息的数据集。本博客将通过对这份数据进行可视化分析,揭示数据分析师岗位的地域分布、薪资水平、经验要求、学历要求以及技能标签等关键信息,帮助求职者更好地把握市场动态,制定职业规划。

一、数据集简介

  本次分析的数据集包含了以下字段:

  • company:公司名称
  • job_position:岗位名称
  • job_address:工作地点
  • job_salary:薪资范围
  • job_exper:经验要求及学历
  • company_type:经验要求
  • tags:技能标签

二、数据预处理

  在正式分析之前,我们加载数据集并进行了预处理,具体流程如下:

2.1 加载分析需要的库

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

import warnings
from scipy.stats import norm,mode
import re
from collections import Counter
import pyecharts.options as opts
from pyecharts.charts import WordCloud

plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False

2.2 导入数据

#导入数据
df = pd.read_csv("boss.csv",header=None)
df.columns = ['company','job_position','job_address','job_salary','job_exper','company_type','tags']
df.head()
df.info()


  数据一共有7个维度,2537条招聘记录,而且数据中无缺失值的存在。

2.3 数据清洗

  • 首先把工作job_exper:经验要求及学历,拆分成工作经验experience和学历diploma字段;
  • 对数据进行去重;
  • 计算各城市薪资均值
df["experience"]=df["job_exper"].str.extract("^(\d+/?-\d+)")
df["diploma"]=df["job_exper"].str[-2:]

#去重
df.duplicated().sum()

df["experience"].replace(np.nan,"经验不限",inplace=True)
df["experience"].replace("1-3","1-3年",inplace=True)
df["experience"].replace("3-5","3-5年",inplace=True)
df["experience"].replace("5-10","5-10年",inplace=True)
df["experience"].unique()
#计算各城市薪资均值
def avg_ar(x):
    if "-" in x:
        a,b=x.split("-")
        return (int(a)+int(b))/2
    else:
        return None  
df["avg_address"]=df["job_salary"].apply(lambda x: re.split("K|元",x)[0])
df["avg_address"]=df["avg_address"].apply(lambda x: avg_ar(x))
df.head()

三、可视化分析

  为了进行这些可视化分析,我们将使用Python及其相关库(如pandas、matplotlib、seaborn等)来处理和分析数据。以下是一个详细的步骤指南和相应的Python代码示例。

3.1 各个城市数据分析岗位招聘数量情况

  我们可以使用matplotlib或seaborn来绘制各个城市数据分析岗位招聘数量情况。

city_job_num = df['job_address'].value_counts().reset_index()
city_job_num.columns = ['city','job_nums']
sns.barplot(x='city', y='job_nums', data=city_job_num)
plt.xticks(rotation=45)  # 旋转x轴标签以便阅读
plt.title('各城市数据分析师招聘数量情况')
plt.show()


  从图中我们可以知道,南京发布的数据分析招聘信息数量最多;

3.2 数据分析师在各城市薪资水平情况

  我们可以使用matplotlib或seaborn来绘制薪资水平的柱状图。


# 按城市分组并计算平均薪资
city_salaries = df.groupby('job_address')['avg_address'].mean().reset_index()

# 绘制薪资水平的地图(需要额外的地理数据,这里使用柱状图作为替代)
sns.barplot(x='job_address', y='avg_address', data=city_salaries)
plt.xticks(rotation=45)  # 旋转x轴标签以便阅读
plt.title('数据分析师在各城市薪资水平情况')
plt.show()


  从图中我们可以知道,北京、杭州、上海、深圳发布的数据分析招聘信息薪资最高;

3.3 薪资和城市分析

  我们已经计算了各城市的在一定范围内的薪资占比情况;

# 薪资和城市
fig=plt.figure(figsize=(10,5),dpi=100)
plt.subplot(121)
temp=df[df.avg_address<10].groupby("job_address").avg_address.count()
temp=pd.DataFrame(temp).sort_values("avg_address").iloc[-8:]
plt.pie(temp["avg_address"],labels=temp.index,autopct="%.2f%%")
plt.title("薪资小于10K的城市占比")
plt.subplot(122)
temp=df[df.avg_address>10].groupby("job_address").avg_address.count()
temp=pd.DataFrame(temp).sort_values("avg_address").iloc[-8:]
plt.pie(temp["avg_address"],labels=temp.index,autopct="%.2f%%")
plt.title("薪资大于10K的城市占比")

plt.show()


  从上图可以看出,在薪资小于10k的城市占比中南京和武汉发布的招聘最高,在薪资大于10k的城市占比中北京和杭州发布的招聘信息最多。

3.4 热门城市薪资箱线图

  我们可以选择几个热门城市,并绘制它们的薪资箱线图。

# 热门城市薪资箱线图
df1=df[df["avg_address"]<100]
data1=df1[df.job_address=="北京"]["avg_address"]
data2=df1[df.job_address=="上海"]["avg_address"]
data3=df1[df.job_address=="广州"]["avg_address"]
data4=df1[df.job_address=="深圳"]["avg_address"]
data5=df1[df.job_address=="杭州"]["avg_address"]
plt.figure(figsize=(12,6))
plt.boxplot([data1,data2,data3,data4,data5],
           labels=["北京","上海","广州","深圳","杭州"],
           flierprops={"marker":"o","markerfacecolor":"r","color":"k"},
           patch_artist=True,
           boxprops={"color":"k","facecolor":"#FFFACD"})
ax=plt.gca()
ax.patch.set_facecolor("#FFFAFA")
ax.patch.set_alpha(0.8)
plt.title("主要城市薪资水平箱线图",fontsize=15)
plt.ylabel("薪资(单位:K)",fontsize=12)

plt.show()

  从上图中可以看出,几个主要的热门城市发布的招聘信息来看,平均薪资最高的是北京,最低的是广州,杭州的高工资和低工资都比较多,求职者的可能性更大,发展机遇就好,努力奋斗

3.5 学历与薪资数据分析

  我们可以使用条形图来展示不同学历的薪资分布。

# 学历与薪资数据分析
d=df["avg_address"].groupby(df["diploma"])
d_avg = d.mean()
c=list(d_avg.index)
v=list(range(1,len(c)+1))
w=d_avg.values.astype("int64")
x=d.median().values.astype("int64")
move=0.4

plt.figure(figsize=(12,5))
plt.bar(v,w,width=move,color="#eed777")
plt.bar([i+move for i in v],x,width=move,color="#334f65")
a=np.arange(0,7)+1.2
plt.xticks(a,c,fontsize=15)
plt.yticks(list(range(0,60,10)),fontsize=15)
plt.legend(["均值","中位数"])
plt.title("各学历薪资均值及中位数比较图",fontsize=16)

plt.xlabel("学历",fontsize=12)
plt.ylabel("薪资(单位:K)",fontsize=12)

for e,f in zip(v,w):
    plt.text(e,f+1,"{}K".format(f),ha="center",fontsize=12)
for g,h in zip([i+move for i in v],x):
    plt.text(g,h+1,"{}K".format(h),ha="center",fontsize=12)
plt.show()


  从上图可以看得出,薪资和学历一般是呈现正相关的关系,学历越高薪资也会越高,兄弟们,不说了写好卷学历去了

3.6 学历与岗位需求的数据分析

  我们可以使用饼状图来展示不同学历在岗位需求中的占比。

# 学历与岗位需求的数据分析
data=df["diploma"].value_counts()
y=data.values
plt.figure(figsize=(6,6))
plt.pie(y,labels=data.index,autopct="%.2f%%")
plt.show()


  从上图可以看出,数据分析岗位招聘要求中本科学历是占绝大多数的。

3.7 工龄与薪资数据分析

  我们可以使用条状图来展示不同工龄的薪资分布。

# 工龄与薪资数据分析
d=df["avg_address"].groupby(df["experience"])
d_avg = d.mean()
c=list(d_avg.index)
v=list(range(1,len(c)+1))
w=d_avg.values.astype("int64")
x=d.median().values.astype("int64")
move=0.4

plt.figure(figsize=(14,8))
plt.bar(v,w,width=move,color="#002c53")
plt.bar([i+move for i in v],x,width=move,color="#0c84c6")
a=np.arange(0,4)+1.2
plt.xticks(a,c,fontsize=15)
plt.yticks(list(range(0,35,5)),fontsize=15)
plt.legend(["均值","中位数"])
plt.title("各学历薪资均值及中位数比较图",fontsize=16)

plt.xlabel("工作经验",fontsize=12)
plt.ylabel("薪资(单位:K)",fontsize=12)

for e,f in zip(v,w):
    plt.text(e,f+1,"{}K".format(f),ha="center",fontsize=12)
for g,h in zip([i+move for i in v],x):
    plt.text(g,h+1,"{}K".format(h),ha="center",fontsize=12)
plt.show()

  从图中可以看出,工作的年限越长,工资也会相应的高一些。

3.8 工龄与市场需求分析

  我们可以使用饼状图来展示不同工龄在市场需求中的占比。

# 工龄与市场需求分析
data=df["experience"].value_counts()
y=data.values
plt.figure(figsize=(6,6))
plt.pie(y,labels=data.index,autopct="%.2f%%",colors = ['tomato', 'lightskyblue', 'goldenrod', 'green'])
plt.show()


  从上图可以看出,工龄3-5年工作的人有一定的工作经验,工资也相对较小,所以比较受欢迎。的需求量是最大的占35.87%,该3-5年工作的人有一定的工作经验,工资也相对较小,所以比较受欢迎。

3.9 数据分析岗技能需求情况

tag = df['tags'].tolist()
tags = []
for item in tag:
    item_split = item.split(',')
    tags.extend(item_split)

counter = Counter(tags)
element_counts = dict(counter)

data = []
for item in element_counts.keys():
    data.append((item,element_counts.get(item)))
    
c = (
    WordCloud()
    .add(
         # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        series_name="数据分析岗位技能需求",   
        # 系列数据项,[(word1, count1), (word2, count2)]
        data_pair=data,  
        # 单词字体大小范围
        word_size_range=[6, 66])
    # 全局配置项
    .set_global_opts(
        # 标题设置
        title_opts=opts.TitleOpts(
            title="数据分析岗位技能需求", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        # 提示框设置
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
    .render("basic_wordcloud.html")
)

  从上图可以看出,SQL、Python等数据分析工具是基础技能,数据挖掘、大数据处理、建模等高级技能是加分项。

四、结论与建议

  通过对BOSS直聘平台上数据分析师招聘信息的可视化分析,我们得出以下结论:

  • 数据分析师岗位主要集中在一线城市和新一线城市,薪资水平较高但竞争激烈。
  • 市场对数据分析师的经验和学历要求以本科为主,但高级岗位对学历和经验要求更高。
  • SQL、Python等数据分析工具是基础技能,机器学习、大数据处理等高级技能是加分项。

  针对以上结论,我们提出以下建议:

  • 求职者应结合自身实际情况,选择适合自己的城市和行业方向。
  • 注重提升个人技能和经验积累,尤其是SQL、Python等数据分析工具的使用能力。
  • 关注市场动态和新兴技术趋势,不断拓展自己的知识边界和技能组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ故障全解析:消费、消息及日常报错处理与集群修复

文章目录 前言&#xff1a;1 消费慢2 消息丢失3 消息重复消费4 日常报错及解决4.1 报错“error in config file “/etc/rabbitmq/rabbitmq.config” (none): no ending found”4.2 生产者发送消息报错4.3 浏览器打开IP地址&#xff0c;无法访问 RabbitMQ&#xff08;白屏没有结…

网络安全——常用语及linux系统

一、网络安全概念及法规 网络安全&#xff1a;网络空间安全 cyber security 信息系统&#xff1a;由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的已处理信息流为目的的人机一体化系统 信息系统安全三要素&#xff08;CIA&#xff09; 保密…

00_专栏《Redis 7.x企业级开发实战教程》介绍

大家好,我是袁庭新。Redis作为一款高性能、多用途的内存数据库,凭借其丰富的数据结构、高速读写能力、原子操作特性及发布订阅等功能,在缓存加速、分布式锁、消息队列等场景中不可或缺,极大提升了系统性能与开发效率,是现代互联网应用架构的关键组件。 你是否在学习Redis…

深度学习中的卷积和反卷积(四)——卷积和反卷积的梯度

本系列已完结&#xff0c;全部文章地址为&#xff1a; 深度学习中的卷积和反卷积&#xff08;一&#xff09;——卷积的介绍 深度学习中的卷积和反卷积&#xff08;二&#xff09;——反卷积的介绍 深度学习中的卷积和反卷积&#xff08;三&#xff09;——卷积和反卷积的计算 …

SpringMVC Idea 搭建 部署war

1.创建 Idea项目 使用Maven模板 创建 webApp模板项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…

ElasticSearch下

DSL查询 叶子查询&#xff1a;在特定字段里查询特定值&#xff0c;属于简单查询&#xff0c;很少单独使用复合查询&#xff1a;以逻辑方式组合多个叶子查询或更改叶子查询的行为方式 在查询后还可以对查询结果做处理&#xff1a; 排序&#xff1a;按照1个或多个字段做排序分页…

读取长文本,使用读取底表

文章目录 代码有原始数据内表作为主表连接STXL的示例获取物料分类获取物料分类的文本的宏读取分类 https://blog.csdn.net/DeveloperMrMeng/article/details/118354649 代码 "第三种&#xff1a;读取底表获取文本 DATA: LT_TLINE TYPE STANDARD TABLE OF TLINE. DATA: LS…

Ubuntu升级Linux内核教程

本文作者CVE-柠檬i: CVE-柠檬i-CSDN博客 本文使用的方法是dpkg安装&#xff0c;目前版本为5.4.0-204&#xff0c;要升级成5.8.5版本 下载 下载网站&#xff1a;https://kernel.ubuntu.com/mainline/ 在该网站下载deb包&#xff0c;选择自己想要升级的版本&#xff0c;这里是5…

JWT在线解密/解码 - 加菲工具

JWT在线解密/解码 首先进入加菲工具 选择 “JWT 在线解密/解码” https://www.orcc.online 或者直接进入JWT 在线解密/解码 https://www.orcc.online/tools/jwt 进入功能页面 使用 输入对应的jwt内容&#xff0c;点击解码按钮即可

如何查看特定版本的Spring源码

写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油&#xff0c;冲鸭&#x…

安全规约、脱敏规范、敏感逻辑的保护方案、防止 SQL 注入

文章目录 I 强制性安全规约对于文件上传功能,需要对于文件大小、类型进行严格检查和控制。平台资源的防重放机制URL 外部重定向传入的目标地址必须执行白名单过滤。表单、AJAX 提交必须执行 CSRF 安全验证。禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。用户请求…

unity2022以上导出到AndroidStudio后更新步骤

1、unity里面Export出unityLibrary 2、导出apk&#xff0c;里面才包含libil2cpp(新版unity无法直接导出libil2cpp 3、注释AS项目app下的build.gradle里面包含unityLibrary的代码 4、注释AS项目settings.gradle包含unityLibrary的代码 5、删除AS项目里面的unityLibrary文件夹 6、…

LabVIEW串口通信调试与数据接收问题

在使用LabVIEW进行串口通信时&#xff0c;常常会遇到无法接收数据的情况。这可能与串口设置、连接、设备响应等多方面因素相关。本文将详细讨论如何使用LabVIEW进行串口通信&#xff0c;并提供常见问题的排查与解决方法&#xff0c;帮助用户更高效地进行数据接收调试。通过调整…

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel&#x1f42b;&#x1f42b;&#x1f42b;&#xff08;刚保研&#xff09; 记录每天学习过程&#xff08;主要学习Java、python、人工智能&#xff09;&#xff0c;总结知识点&#xff08;内容来自&#xff1a;自我总结网上借鉴&#xff0…

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页 一、问题背景&#xff1a; 如今&#xff0c;大家都离不开各种手机应用。随着鸿蒙系统用户越来越多&#xff0c;大家都希望能在鸿蒙设备上快速找到想用的 APP。华为应用市场里有海量的 APP&#xff0c;但之前从鸿蒙设备进…

智能物流升级利器——SAIL-RK3576核心板AI边缘计算网关设计方案(一)

近年来&#xff0c;随着物流行业智能化和自动化水平不断提升&#xff0c;数据的实时处理与智能决策成为推动物流运输、仓储管理和配送优化的重要手段。传统的集中式云平台虽然具备强大计算能力&#xff0c;但高延迟和带宽限制往往制约了物流现场的即时响应。为此&#xff0c;我…

nacos环境搭建以及SpringCloudAlibaba脚手架启动环境映射开发程序

1&#xff1a;下载nacos 地址&#xff1a;https://github.com/alibaba/nacos/tags 2:选择server的zip包下载 3:启动mysql服务&#xff0c;新建数据库&#xff1a;nacos_yh 4&#xff1a;解压下载的nacos_server 进入conf目录 5&#xff1a;mysql运行sql脚本变得到下面的表 6&a…

Java中线程的学习

目录​​​​​​​ 程序,进程,线程 创建线程 继承Thread类 实现Runnable接口 Thread类中方法 线程优先级 线程状态 多线程的概念 线程同步 在Java代码中实现同步 以下代码使用继承Thread方式实现 以下代码使用实现Runnable方式实现 Lock&#xff08;锁&#xf…

HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS

这里是Themberfue ✨上节课我们聊到了对称加密和非对称加密&#xff0c;实际上&#xff0c;单纯地非对称加密并不能保证数据不被窃取&#xff0c;我们还需要一个更加重要的东西——证书 中间人攻击 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥&…

leetcode:205. 同构字符串(python3解法)

难度&#xff1a;简单 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符&#xff0c;同时不改变字符的顺序。不同字符不能映射到同一个字…