数据分析案例-大数据相关招聘岗位可视化分析

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


数据集介绍

本次数据集来源于xx招聘网共计4223条招聘信息,每条招聘信息字段包括岗位名称、公司名称、工作经验要求、学历要求、工作地点、薪酬、公司规模、发布时间、公司福利共9条字段信息。

 数据预处理

首先导入本次数据集,

import pandas as pd
data = pd.read_csv('job_data.csv')
data.head()

查看数据缺失值情况,

data.isnull().sum()

 

通过缺失值情况,我们发现公司规模缺失值较多,而这个字段数据对于本次分析没有太大用处,故在这里直接删除这一列,对于其他少量缺失值,直接删除就好。

data.drop('公司规模',axis=1,inplace=True)
data.dropna(inplace=True)
data.shape

 

接着就是处理数据集中的字段信息,便于后面的数据可视化

# 处理工作经验要求
data['工作经验要求'] = data['工作经验要求'].replace(to_replace=
{'无需经验':'经验不限','经验在校/应届':'经验不限','1年经验':'1-3年','2年经验':'1-3年','经验1-3年':'1-3年',
'经验1年以下':'1-3年','3-4年经验':'3-5年','经验3-5年':'3-5年','5-7年经验':'5-10年','经验5-10年':'5-10年',
'8-9年经验':'5-10年','10年以上经验':'10年以上','经验10年以上':'10年以上'})
# 处理学历要求
data['学历要求'] = data['学历要求'].replace(to_replace={'大专':'专科及以下','高中':'专科及以下','不限':'专科及以下','中技/中专':'专科及以下'})
# 获取工作城市
data['工作城市'] = data['工作地点'].apply(lambda x:x.split('-')[0])
data['工作城市'] = data['工作城市'].apply(lambda x:x.split('·')[0])
def avg_salary(x):try:start = x.split('-')[0]end = x.split('-')[1]if end[-1] == '千':start_salary = float(start)*1000end_salary = float(end[:-1])*1000elif end[-1] == '万':if start[-1] == '千':start_salary = float(start[:-1])*1000end_salary = float(end[:-1])*10000else:start_salary = float(start)*10000end_salary = float(end[:-1])*10000elif end[-1] == 'k':start_salary = float(start[:-1])*1000end_salary = float(end[:-1])*1000elif end[-1] == '薪':salary_number = float(end.split('·')[1][:-1])if end.split('·')[0][-1] == '万':if start[-1] == '千':start_salary = float(start[:-1])*1000/12*salary_numberend_salary = float(end.split('·')[0][:-1])*10000/12*salary_numberelse:start_salary = float(start)*10000/12*salary_numberend_salary =  float(end.split('·')[0][:-1])*10000/12*salary_numberelif end.split('·')[0][-1] == '千':start_salary = float(start)*1000/12*salary_numberend_salary = float(end.split('·')[0][:-1])*1000/12*salary_numberelif end[-1] == '年':end = end[:-2]if end[-1] == '万':if start[-1] == '千':start_salary = float(start[:-1])*1000end_salary = float(end[:-1])*10000else:start_salary = float(start)*10000end_salary = float(end[:-1])*10000return (start_salary+end_salary)/2except:return 10000
data['平均薪资'] = data['薪酬'].apply(avg_salary)
data.head()

 在这里,我把工作经验和学历要求进行了清洗整理,划分为固定的几个分类,然后提取了工作城市,以及处理了原始薪资数据(数据是真的很杂,需要花点时间来处理),最后得到平均薪资。

数据可视化 

先导入数据可视化需要用到的第三方包,

import pandas as pd
import matplotlib.pyplot as plt
from pyecharts.charts import *
from pyecharts import options as  opts 
from pyecharts.globals import ThemeType
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False

分析各工作经验要求占比

# 工作经验要求
df1 = data['工作经验要求'].value_counts()
a1 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))
a1.add(series_name='工作经验要求',data_pair=[list(z) for z in zip(df1.index.to_list(),df1.values.tolist())],radius='70%',)
a1.set_global_opts(title_opts=opts.TitleOpts(title="工作经验要求占比",pos_left='center',pos_top=30))
a1.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)'))
a1.render_notebook()

通过图表我们发现,除了10年以上,其他区间的经验要求占比相差不大,说明各个区间的经验要求需求岗位量大体相似。

 分析不同工作经验的岗位数量和薪资变化

x = ['经验不限','1-3年','3-5年','5-10年','10年以上']
bar =Bar()
bar.add_xaxis(x)
bar.add_yaxis('岗位数量',[399,724,870,535,27],label_opts=opts.LabelOpts(is_show=False))bar.set_global_opts(title_opts=opts.TitleOpts('不同工作经验的岗位数量和薪资变化'),tooltip_opts=opts.TooltipOpts(is_show=True,trigger='axis',axis_pointer_type='cross'),xaxis_opts= opts.AxisOpts(type_='category',axispointer_opts=opts.AxisPointerOpts(is_show=True,type_='shadow')))
bar.extend_axis(yaxis=opts.AxisOpts(name='月薪',min_=0,max_= 110000,interval = 10000
))
line = Line()
line.add_xaxis(x)
line.add_yaxis('平均薪资',[18468,17011,32701,40371,101429],yaxis_index=1,label_opts=opts.LabelOpts(is_show=False))
bar.overlap(line) # 合并图
bar.render_notebook()

通过图表,我们发现经验要求的需求量大体呈正态分布,薪酬是随着经验年限的增长而逐渐递增。

分析不同学历要求占比

# 学历要求
df2 = data['学历要求'].value_counts()
a2 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK))
a2.add(series_name='学历要求',data_pair=[list(z) for z in zip(df2.index.to_list(),df2.values.tolist())],radius='70%',)
a2.set_global_opts(title_opts=opts.TitleOpts(title="学历要求占比",pos_left='center',pos_top=30))
a2.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)'))
a2.render_notebook()

通过图表我们发现,本科学历占据了65%,本科及以下共高达95%,对于学历这块,要求似乎要求不是很高。

分析不同学历要求的岗位数量和薪酬变化

x = ['专科及以下','本科','硕士','博士']
bar =Bar()
bar.add_xaxis(x)
bar.add_yaxis('岗位数量',[684,1753,109,9],label_opts=opts.LabelOpts(is_show=False))bar.set_global_opts(title_opts=opts.TitleOpts('不同学历要求的岗位数量和薪资变化'),tooltip_opts=opts.TooltipOpts(is_show=True,trigger='axis',axis_pointer_type='cross'),xaxis_opts= opts.AxisOpts(type_='category',axispointer_opts=opts.AxisPointerOpts(is_show=True,type_='shadow')))
bar.extend_axis(yaxis=opts.AxisOpts(name='月薪',min_=0,max_= 45000
))
line = Line()
line.add_xaxis(x)
line.add_yaxis('平均薪资',[11888,33784,44118,34148],yaxis_index=1,label_opts=opts.LabelOpts(is_show=False))
bar.overlap(line) # 合并图
bar.render_notebook()

 

随着学历的增长,薪资也在增长,这里博士学历应该是数据量太少导致出现了下滑异常,总体趋势肯定还是学历越高,薪资越高。

分析岗位需求量最高的前五名公司 

data['公司名称'].value_counts().head().plot(kind='barh')
plt.title('岗位需求量最高的前五名公司')
plt.show()

 岗位需求量大的公司貌似都集中在深圳北京等一线城市。

词云图可视化

先定义一个制作词云图的函数 

import jieba
import collections
import re
import stylecloud
from PIL import Image# 封装一个画词云图的函数
def draw_WorldCloud(df,pic_name,color='black'):data =  ''.join([item for item in df])# 文本预处理 :去除一些无用的字符只提取出中文出来new_data = re.findall('[\u4e00-\u9fa5]+', data, re.S)new_data = "".join(new_data)# 文本分词seg_list_exact = jieba.cut(new_data, cut_all=True)result_list = []with open('停用词库.txt', encoding='utf-8') as f: #可根据需要打开停用词库,然后加上不想显示的词语con = f.readlines()stop_words = set()for i in con:i = i.replace("\n", "")   # 去掉读取每一行数据的\nstop_words.add(i)for word in seg_list_exact:if word not in stop_words and len(word) > 1:result_list.append(word)word_counts = collections.Counter(result_list)# 词频统计:获取前100最高频的词word_counts_top = word_counts.most_common(100)print(word_counts_top)# 绘制词云图stylecloud.gen_stylecloud(text=' '.join(result_list), collocations=False, # 是否包括两个单词的搭配(二字组)font_path=r'C:\Windows\Fonts\msyh.ttc', #设置字体size=800, # stylecloud 的大小palette='cartocolors.qualitative.Bold_7', # 调色板background_color=color, # 背景颜色icon_name='fas fa-circle', # 形状的图标名称 gradient='horizontal', # 梯度方向max_words=2000, # stylecloud 可包含的最大单词数max_font_size=150, # stylecloud 中的最大字号stopwords=True, # 布尔值,用于筛除常见禁用词output_name=f'{pic_name}.png') # 输出图片# 打开图片展示img=Image.open(f'{pic_name}.png')img.show()

接着使用岗位名称数据来进行词云图可视化,看看大数据相关岗位的情况

draw_WorldCloud(data['职位名称'],'大数据职位名称词云图')

通过词云图发现,大数据相关岗位大体主要分为数据分析、大数据开发、架构师等。

使用公司福利数据来词云图分析一下

draw_WorldCloud(data['公司福利'],'公司福利词云图')

 通过词云图看出,大数据相关岗位福利主要为各种奖金、补贴、培训等等。

通过热力地图分析各城市岗位分布

df3 = data['工作城市'].value_counts()
city_data = city_data = [[x+'市',y] if x[-3:] != '自治州' else [x,y] for x,y in zip(df3.index.to_list(),df3.values.tolist())]
map = Map()
map.add('地区',city_data,maptype='china-cities',is_map_symbol_show=False,label_opts=opts.LabelOpts(is_show=False))
map.set_global_opts(title_opts=opts.TitleOpts('各城市岗位数量分布'),visualmap_opts=opts.VisualMapOpts(max_=100,min_=1)
)
map.render(path='各城市岗位数量分布.html')
map.render_notebook() 

 

通过热力地图我们看出,大数据岗位在上海,北京、深圳等城市需求量较高 。(热力地图如在手机端无法查看可用PC端打开查看)

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

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

相关文章

医药销售数据分析

阅读原文 一、数据源 来自某医药公司的产品销售数据&#xff0c;时间为 3 月到 5 月&#xff0c;共 48 个 Excel 表格。包含订单信息、售后信息、用户信息以及对应销售人员信息等。 加载合并后得到的原始数据如下&#xff1a; 二、数据清洗 清洗流程以及对应细节 加载数据源 …

【Python数据分析】——药品销售数据分析(完整项目实战)

一、前言 这篇文章找来了有关药品销售数据进行案例分析练习&#xff0c;利用适当的统计方法对相关数据进行月均消费次数、月均消费金额、客单价和消费趋势等几个业务指标进行分析。 分析过程为&#xff1a;数据获取、数据清洗、建模分析、可视化 二、数据获取 &#xff08;…

奇瑞汽车回应要求员工周六上班:本意不是压榨员工;Google发布史上最大通才模型PaLM-E;Chrome 111发布|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

ChatGPT和知识图谱视频笔记

目录 Prompt tuing Instruction-tuning 知识图谱 prompting tuning未对模型参数进行更新&#xff0c; Fine tuning和Instruction tuning都对模型参数进行了更新 Prompt tuing prompt简单理解就是提问的问题 Instruction-tuning 知识图谱

新浪股票接口获取历史数据

这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用&#xff0c;因为新浪没有公开关于其接口的官方文档&#xff0c;所以通过各种百度差了很多关于新浪股票接口的使用&#xff0c;不过大家基本都是转载或者直接复制&#xff0c;对于实时数据的获取讲的很详细&#…

ChatGPT爆火之下,最有料如何赋能企业数字化升级

随着数字技术的飞速发展&#xff0c;人们的生活逐渐被数字技术所渗透。从智能家居到智能手机&#xff0c;从智能交通到智能医疗&#xff0c;数字技术已经成为了我们生活中不可或缺的一部分。最近火爆的ChatGPT就是一个很好的例子&#xff0c;作为新兴的数字技术&#xff0c;不仅…

硬件预算最高直降46倍!低成本上手AIGC和千亿大模型,一行代码自动并行,Colossal-AI再升级

最近&#xff0c;AI大模型连续火爆出圈&#xff0c;人工智能生成模型&#xff08;AIGC&#xff09;的热度尚未褪去&#xff0c;聊天机器人ChatGPT便引发全网热议&#xff0c;两周吸引百万用户。还有卷趴一半程序员的AlphaCode&#xff0c;生成全新蛋白质的ESM2等&#xff0c;不…

chatgpt赋能python:用Python优化电气工程

用Python优化电气工程 电气工程是现代世界的基础&#xff0c;在我们的日常生活中随处可见电气设备和电子系统的影响。Python是一种流行的编程语言&#xff0c;能够优化电气工程的许多方面。本文将介绍如何使用Python来增强电气工程的效率和准确性。 数据分析 Python是一种强…

chatgpt赋能python:Python模拟电路:实现更快,更高效的电路设计

Python模拟电路&#xff1a;实现更快&#xff0c;更高效的电路设计 当涉及到电路设计和模拟时&#xff0c;Python已经成为了工程师们首选的编程语言之一。无论是进行数字电路还是模拟电路设计&#xff0c;Python都表现出了它的可靠性和灵活性。 在这篇文章中&#xff0c;我们…

AI-领航-人生第一节-AI课,30位AI领域极客 汇集1000小时Al心得

保姆级教学 从入门到精通&#xff0c;0基础新手小白都能学 142课程体系 AI先导课-认识Al 四大领域技能-干货学习 GPT智能写作 GPT营销与策划] AI图像与视频 AI职场提效 复盘课程升级 A使用1000小时的高阶心得|高阶课程展示 课程大纲&#xff1a; 一、先导课 什么是G…

【免费AI教程大合集】做一个不轻易被割的韭菜

说明&#xff1a;本篇分享的内容不含任何商业推广&#xff0c;也不会收取任何费用&#xff0c;并且属于网络上各路大咖整理的资源文档&#xff0c;完全免费&#xff01;&#xff01;&#xff01; 前言&#xff1a; 在当今数字化和智能化的时代&#xff0c;人工智能已然成为一种…

外贸开发信 html,外贸开发信怎么写,外贸客户开发信写作技巧及注意事项(附范文模板)...

外贸开发信的7大写作技巧 1、开发信开头称呼要恰当 有些人写外贸开发信不喜欢加称呼&#xff0c;甚至连简单的“你好”都忽略&#xff0c;直接开始正文内容。孰不知就像在传统的信件上一样&#xff0c;写上称呼是一种礼貌的象征。 2、内容言简意赅 外贸开发信标题要足够清晰明确…

openai(chatgpt)+python详细使用方法

网络上很多直接就是上这么串代码的 ​ import openai#获取api-key openai.api_key "你的apikey"response openai.Completion.create(model"text-davinci-003",prompt"请用python语言生成一个二分法查找算法",max_tokens256, ) messagerespons…

善于发现自己的优势,他与好友合伙创业,年销售做到近15亿

1965年&#xff0c;吴长江出生在重庆铜梁的一个矿工家庭。在他的记忆中&#xff0c;整个小学&#xff0c;都是光着脚上学&#xff0c;但常常给父母拿回来的是满分的试卷。 高中毕业后&#xff0c;吴长江考入西北工业大学&#xff0c;学的是飞机制造。毕业后进入陕西汉中一家国…

创业者应远离20个创业趋势:限时折扣 签到 交友

条条大路通罗马&#xff0c;非要在独木桥上论成败&#xff0c;那不是自寻烦恼吗&#xff1f; 导语&#xff1a;条条大路通罗马&#xff0c;非要在独木桥上论成败&#xff0c;那不是自寻烦恼吗?美国科技博客网站BusinessInsider周二就评选出20个创业者应该远离的创业趋势&#…

二次创业成功人士的19个经验与教训

二次创业成功人士的19个经验与教训 神译局是36氪旗下编译团队&#xff0c;关注科技、商业、职场、生活等领域&#xff0c;重点介绍国外的新技术、新观点、新风向。 编者按&#xff1a;创业维艰。在创业路上&#xff0c;创业者也走过不少弯路&#xff0c;从中也获取了不少经验…

“我创业成功的十大秘诀”

【CSDN 编者按】对于创业者来说&#xff0c;很容易因为经验不足而失败&#xff0c;所以吸取别人创业的前车之鉴&#xff0c;学习别人成功案例是创业成功路上的垫脚石。本文作者讲述了他在创业生涯中的十条经验&#xff0c;如果你想要创业或者正要创业&#xff0c;不妨来看看他的…

Chatopera 张凯:创业的信念,为了小家和大家

目录 背景第一步 准备第二步 起航第三步 归来总结本文作者 背景 时光飞逝&#xff0c;创业两年&#xff0c;流金岁月&#xff0c;2020年7月份我在网上偶然听到一个故事。有个高三学生在高考最后几个月差点放弃高考&#xff0c;但是最终又重回高考队伍&#xff0c;还考上了比较…

创业之初的小团队

前段时间有机会与创新工场的合伙人-汪华&#xff0c;聊了聊针对移动互联网mobile app market和手机二维码相关业务&#xff0c;虽然他的很多观点在我看来是太过于以精英主义和投资眼光去评价&#xff0c;但是说话不紧不慢的他&#xff0c;每句话都透露出他对行业的理解、把握以…

作为一名投资人,我经常会问创业者 8 个问题

[转] http://36kr.com/p/5096956.html Li Jiang是一名天使投资人&#xff0c;也是一名关注高增长创业公司的VC&#xff0c;最近他写了一篇文章&#xff0c;谈到投资者经常会问创业者的8个问题。从表面上看&#xff0c;这些问题很容易回答&#xff0c;实际很难。 小时候&#x…