【数据可视化-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.mzph.cn/web/65925.shtml

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

相关文章

excel仅复制可见单元格,仅复制筛选后内容

背景 我们经常需要将内容分给不同的人&#xff0c;做完后需要合并 遇到情况如下 那是因为直接选择了整列&#xff0c;当然不可以了。 下面提供几种方法&#xff0c;应该都可以 直接选中要复制区域然后复制&#xff0c;不要选中最上面的列alt;选中可见单元格正常复制&#xff…

支持向量回归(SVR:Support Vector Regression)用于A股数据分析、预测

简单说明 支持向量回归是一种用来做预测的数学方法,属于「机器学习」的一种。 它的目标是找到一条「最合适的线」,能够大致描述数据点的趋势,并允许数据点离这条线有一定的误差(不要求所有点都完全落在这条线上)。 可以把它想象成:找到一条「宽带」或「隧道」,大部分…

LabVIEW水位监控系统

LabVIEW开发智能水位监控系统通过集成先进的传感技术与控制算法&#xff0c;为工业液体存储提供精确的水位调控&#xff0c;保证了生产过程的连续性与安全性。 项目背景 在化工和饮料生产等行业中&#xff0c;水位控制的准确性对保证生产安全和提高产品质量至关重要。传统的水…

深入浅出 Android AES 加密解密:从理论到实战

深入浅出 Android AES 加密解密&#xff1a;从理论到实战 在现代移动应用中&#xff0c;数据安全是不可忽视的一环。无论是用户隐私保护&#xff0c;还是敏感信息的存储与传输&#xff0c;加密技术都扮演着重要角色。本文将以 AES&#xff08;Advanced Encryption Standard&am…

React Fiber框架中的Render渲染阶段——workLoop(performUnitOfWork【beginWork与completeWork】)

触发渲染过程——renderRoot renderRoot 是一个函数&#xff0c;用于触发渲染工作。它通常会调用并递归地执行一系列的渲染任务&#xff0c;直到完成整个更新过程。这个过程包括执行 Fiber 树中的 beginWork 和 completeWork&#xff0c;以及渲染新状态或 DOM。 function ren…

【优先算法】思还故里闾,欲归道无因 - 前缀和

本篇博客给大家带来的是前缀和算法的知识点, 也是一样通过OJ题理解,掌握,应用该算法. &#x1f40e;文章专栏: 算法 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&…

亿道三防丨三防笔记本是什么意思?和普通笔记本的优势在哪里?

三防笔记本是什么意思&#xff1f;和普通笔记本的优势在哪里&#xff1f; 在现代社会中&#xff0c;笔记本电脑已经成为人们工作和生活中不可或缺的一部分。然而&#xff0c;在一些特殊行业或环境中&#xff0c;普通笔记本电脑由于其脆弱性和对环境条件的敏感性&#xff0c;往…

SOME/IP 协议详解——服务发现

文章目录 1. Introduction &#xff08;引言&#xff09;2. SOME/IP Service Discovery (SOME/IP-SD)2.1 General&#xff08;概述)2.2 SOME/IP-SD Message Format2.2.1 通用要求2.2.2 SOME/IP-SD Header2.2.3 Entry Format2.2.4 Options Format2.2.4.1 配置选项&#xff08;Co…

Go语言之路————go环境的初始化

Go语言之路————go环境的初始化 前言一、Go的安装二、环境配置三、初始化一个新项目四、常用的一些指令 前言 我是一名多年Java开发人员&#xff0c;因为工作需要现在要学习go语言&#xff0c;Go语言之路是一个系列&#xff0c;记录着我从0开始接触Go&#xff0c;到后面能正…

鸿蒙UI开发——基于onTouch事件实现表情选择胶囊

1、背 景 有朋友留言说&#xff0c;抖音APP中&#xff0c;长按评论按钮触发的快捷表情选择胶囊动画比较好&#xff08;效果如下图&#xff09;&#xff0c;希望使用鸿蒙ArkTs也实现一个类似的。 本文在鸿蒙ArkTs下也实现一个类似的效果&#xff0c;如下&#xff1a; 首先&…

Node.js——http 模块(二)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

研华 PCI-1751 驱动更新导LabVIEW致程序异常

问题描述&#xff1a; 某 LabVIEW 程序长期运行正常&#xff0c;但在使用研华 PCI-1751 数据采集卡运行一段时间后&#xff0c;程序开始出现不正常的行为。具体过程如下&#xff1a; 初始问题&#xff1a; 更换新的 PCI-1751 板卡后&#xff0c;驱动程序被更新&#xff0c;但程…

接上篇基于Alertmanager 配置钉钉告警

Alertmanager 是一个用于处理和管理 Prometheus 警报的开源工具。它负责接收来自 Prometheus 服务器的警报&#xff0c;进行去重、分组、静默、抑制等操作&#xff0c;并通过电子邮件、PagerDuty、Slack 等多种渠道发送通知。 主要功能 去重&#xff1a;合并相同或相似的警报&…

网络原理(三)—— 传输层 之 UDP 和 TCP协议

传输层 在传输层两大关键的协议就是UDP和TCP协议了&#xff0c;除此之外&#xff0c;还有别的传输层协议&#xff0c;本文章将介绍UDP和TCP协议&#xff0c;重点介绍TCP协议。 首先回顾TCP和UDP 的特点&#xff1a; UDP&#xff1a;不可靠传输&#xff0c;面向数据包&#xf…

针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决

&#xff08;点击即可进入聊天助手&#xff09; 很多站长在运营网站的过程当中都会遇到一个问题,就是网站突然无法打开,数据一直无法启动 无论是强制重启还是,删除网站内的所有应用,数据库一直无法启动 这个时候,就需要常见的运维手段了,需要对服务器后台各个资源,进行逐一排查…

高性能现代PHP全栈框架 Spiral

概述 Spiral Framework 诞生于现实世界的软件开发项目是一个现代 PHP 框架&#xff0c;旨在为更快、更清洁、更卓越的软件开发提供动力。 特性 高性能 由于其设计以及复杂精密的应用服务器&#xff0c;Spiral Framework框架在不影响代码质量以及与常用库的兼容性的情况下&a…

【STM32-学习笔记-6-】DMA

文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff…

SQL Server中可以通过扩展事件来自动抓取阻塞

在SQL Server中可以通过扩展事件来自动抓取阻塞&#xff0c;以下是详细流程&#xff1a; 开启阻塞跟踪配置&#xff1a; • 执行以下SQL语句来启用相关配置&#xff1a; EXEC sp_configureshow advanced options, 1; RECONFIGURE; EXEC sp_configure blocked process thresh…

【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息

源码链接&#xff1a; https://github.com/Niceeggplant/Single—Site-Crawler.git 一、项目概述 从指定网页中提取文章关键信息的工具。通过输入文章的 URL&#xff0c;程序将自动抓取网页内容 二、技术选型与原理 requests 库&#xff1a;这是 Python 中用于发送 HTTP 请求…

关于扫描模型 拓扑 和 传递贴图工作流笔记

关于MAYA拓扑和传递贴图的操作笔记 一、拓扑低模: 1、拓扑工作区位置: 1、准备出 目标 高模。 (高模的状态如上 ↑ )。 2、打开顶点吸附,和建模工具区,选择四边形绘制. 2、拓扑快捷键使…