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

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通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 pltimport warnings
from scipy.stats import norm,mode
import re
from collections import Counter
import pyecharts.options as opts
from pyecharts.charts import WordCloudplt.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))/2else: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.4plt.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.4plt.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.rhkb.cn/news/1472.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(12)springMVC文件的上传

SpringMVC文件上传 首先是快速搭建一个springMVC项目 新建项目mvn依赖导入添加webMoudle添加Tomcat运行环境.在配置tomcat时ApplicationContext置为"/"配置Artfact的lib配置WEB-INF配置文件&#xff08;记得添加乱码过滤&#xff09;配置springmvc-servlet文件&…

Ubuntu中双击自动运行shell脚本

方法1: 修改文件双击反应 参考: https://blog.csdn.net/miffywm/article/details/103382405 chmod x test.sh鼠标选中待执行文件&#xff0c;在窗口左上角edit菜单中选择preference设计双击执行快捷键&#xff0c;如下图&#xff1a; 方法2: 设置一个应用 参考: https://blo…

Linux(Centos7)安装Mysql/Redis/MinIO

安装Mysql 安装Redis 搜索Redis最先版本所在的在线安装yum库 查看以上两个组件是否是开机自启 安装MinIO 开源的对象存储服务&#xff0c;存储非结构化数据&#xff0c;兼容亚马逊S3协议。 minio --help #查询命令帮助minio --server --help #查询--server帮助minio serve…

金融项目实战 01|功能测试分析与设计

前置内容&#xff1a;金融项目准备的内容笔记可直接看如下笔记 只看&#xff1a;一、投资专业术语 和 二、项目简介 两部分文章浏览阅读2.3k次&#xff0c;点赞70次&#xff0c;收藏67次。安享智慧理财金融系统测试项目&#xff0c;测试用例&#xff0c;接口测试&#xff0c;金…

【Rust】控制流

目录 思维导图 一、选择结构 1. if表达式 2. 处理多个条件的else if 3. 使用if在let语句中 二、循环结构 1. loop 2. while循环 3. for循环 4. 使用范围Range进行循环 思维导图 一、选择结构 控制流是编程语言的基本构建块&#xff0c;Rust使用if表达式和循环来控制代…

FastDDS安装测试记录

1、安装依赖的软件 sudo apt install cmake g python3-pip wget git sudo apt install libasio-dev libtinyxml2-dev sudo apt install libssl-dev sudo apt install libp11-dev libengine-pkcs11-openssl sudo apt install softhsm22、安装foonathan_memory_vendor cd ~/Fas…

浅谈云计算01 | 云计算服务的特点

在当今数字化时代&#xff0c;云计算作为一种强大的技术解决方案&#xff0c;正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点&#xff0c;包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。 一、按需自助服务 云…

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者&#xff1a;Gitesh Chawda创建日期&#xff1a;2023/06/26最后修改时间&#xff1a;2023/06/26描述&#xff1a;使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 &#xff08;i&#xff09; 此示例使用 Keras 2 在 Colab 中…

vue3+ts+element-plus 对话框el-dialog设置圆角

对话框el-dialog设置圆角&#xff0c;实现的需求效果&#xff1a; 目前只能通过行内样式&#xff08;style"border-radius: 20px"&#xff09;来实现圆角效果&#xff1a;

pycharm-pyspark 环境安装

1、环境准备&#xff1a;java、scala、pyspark、python-anaconda、pycharm vi ~/.bash_profile export SCALA_HOME/Users/xunyongsun/Documents/scala-2.13.0 export PATH P A T H : PATH: PATH:SCALA_HOME/bin export SPARK_HOME/Users/xunyongsun/Documents/spark-3.5.4-bin…

UnityXR Interaction Toolkit 如何检测HandGestures

前言 随着VR设备的不断发展,从最初的手柄操作,逐渐演变出了手部交互,即头显可以直接识别玩家的手部动作,来完成手柄的交互功能。我们今天就来介绍下如何使用Unity的XR Interaction Toolkit 来检测手势Hand Gesture。 环境配置 1.使用Unity 2021或者更高版本,创建一个项…

thinkphp 5.0 结合redis 做延迟队列,队列无法被消费

目录 一、Linux 环境下 二、如何验证消息队列被正确监听 一、Linux 环境下 项目部署在Linux 环境下&#xff0c;首先找到项目的部署路径&#xff0c;接着输入命令,这个命令是以守护进程方式进行监听你的队列&#xff0c;只要redis 不关闭 就可以一直监听这个队列 nohup php …

E10.【C语言】练习:编写一个猜数字游戏

目录 1.规则 2.准备 3.游戏代码 1.规则 1.程序生成1-100间的随机数 2.用户猜数字 猜对了&#xff1a;游戏结束 猜错了&#xff1a;程序会告知猜大了或猜小了&#xff0c;继续进行游戏&#xff0c;直到猜对 3.游戏可以一直玩除非退出游戏 2.准备 1.框架&#xff1a;循…

【HTML+CSS+JS+VUE】web前端教程-31-css3新特性

圆角 div{width: 100px;height: 100px;background-color: saddlebrown;border-radius: 5px;}阴影 div{width: 200px;height: 100px;background-color: saddlebrown;margin: 0 auto;box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);}

【高阶数据结构】位图

位图 一.位图相关面试题二.位图的设计及实现三.C库中的位图bitset四.位图的优缺点五.位图相关考察题目 一.位图相关面试题 问题&#xff1a;给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff08;本…

解决Qt打印中文字符出现乱码

在 Windows 平台上&#xff0c;默认的控制台编码可能不是 UTF-8&#xff0c;这可能会导致中文字符的显示问题。 下面是在 Qt 应用程序中设置中文字体&#xff0c;并确保控制台输出为 UTF-8 编码&#xff1a; 1. Qt 应用程序代码 在 Qt 中&#xff0c;我们可以使用 QApplic…

hutool糊涂工具通过注解设置excel宽度

import java.lang.annotation.*;Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) public interface ExcelStyle {int width() default 0; }/*** 聊天记录*/ Data public class DialogContentInfo {/**…

【算法学习】——整数划分问题详解(动态规划)

&#x1f9ee;整数划分问题是一个较为常见的算法题&#xff0c;很多问题从整数划分这里出发&#xff0c;进行包装&#xff0c;形成新的题目&#xff0c;所以完全理解整数划分的解决思路对于之后的进一步学习算法是很有帮助的。 「整数划分」通常使用「动态规划」解决&#xff0…

【Elasticsearch7.11】postman批量导入少量数据

JSON 文件内的数据格式&#xff0c;json文件数据条数不要过多&#xff0c;会请求参数过大&#xff0c;最好控制再10000以内。 {"index":{"_id":"baec07466732902d22a24ba01ff09751"}} {"uuid":"baec07466732902d22a24ba01ff0975…

Mysql--架构篇--体系结构(连接层,SQL层,存储引擎层,文件存储层)

MySQL是一种广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;其体系结构设计旨在提供高效的数据存储、查询处理和事务管理。MySQL的体系结构可以分为多个层次&#xff0c;每个层次负责不同的功能模块。 MySQL的体系结构主要由以下几个部分组成&#…