数据分析案例-BI工程师招聘岗位信息可视化分析

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

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


目录

数据集介绍

实验工具 

实验过程

导入数据

数据预处理

数据可视化

1.分析BI工程师岗位的评价薪资分布情况 

2.分析BI岗位学历要求

3.分析BI岗位工作经验要求

4.分析哪种工作类型需求最多

5.分析各城市岗位数量分布

6.分析平均薪资最高的前十名城市

 7.分析薪资最高的前十名公司及岗位信息

总结

源代码


数据集介绍

本次实验数据集来源于智联招聘网中关于BI工程师岗位的招聘信息,共计1800条数据,每条招聘信息包括岗位名称、公司、薪资、城市、工作类型、学历要求、工作经验要求共7个字段。

实验工具 

python3.10

jupyter notebook

实验过程

导入数据

 查看数据大小

 查看数据基本信息

从结果中可以发现在学历要求这一列变量中存在缺失值

数据预处理

首先对原始数据进行缺失值和重复值的处理,由于缺失数据较少,这里统一直接删除即可

 

处理各特征数据:

jobname岗位名称 :剔除不包含bi的岗位(用None先表示),只保留含有bi的岗位。

salary薪资:将薪资范围中的最低最高值转换为平均薪资,同时由于有少数薪资为“薪资面议”、‘校招’等全都表示为None,后面一并处理。

city城市:将原始数据中的城市+地区的数据转为城市,比如“北京-朝阳区”转化为北京市。

wrokingExp工作经验:将原数据中的无经验改为不限。

 

 从处理后的结果可发现,最后剩余的数据还有1446条。

数据可视化

导入数据可视化用到的第三方包

1.分析BI工程师岗位的评价薪资分布情况 

 从平均薪资分布情况来看,目前BI工程师岗位在智联招聘网站的平均薪资为13.5K,主要薪水区间大概在12-15K


2.分析BI岗位学历要求

 从岗位学历要求来看,BI工程师岗位的要求不高,绝大多数为大专和本科,只有极少数为硕士和博士。

3.分析BI岗位工作经验要求

 从结果来看,绝大多数要求为5年以下,其中1-3年最多,其次是3-5年,最后是不限。

4.分析哪种工作类型需求最多

 从词云图中我们可以看出BI工程师的工作类型中装修、建筑、土木、市政工程、互联网开发、软件较多,说明BI工程师岗位主要为建筑和互联网两个行业。

5.分析各城市岗位数量分布

 图片如果失效无法展出,小伙伴只要按照代码即可自己画出,该图就是在地图上以热力图的形式展示各个城市的岗位数量。

6.分析平均薪资最高的前十名城市

 7.分析薪资最高的前十名公司及岗位信息

总结

1.目前BI工程师岗位在智联招聘网站的平均薪资为13.5K,主要薪水区间大概在12-15K。

2.从城市岗位需求数量分布来看,BI工程师需求主要集中在北京、上海、深圳、广州区域;各国内排在前面的分别为深圳(15.63K)、上海(15.62K)、北京(15.52)、杭州(12.07K)、成都(11.69K)、广州(11.19K)

3.从工作年限的平均薪水和岗位需求数量来看,工作5-10年的资深BI工程师的平均薪水可以达到20K以上,其中大部分的工作需求年限为3-5年,平均薪水为15.12K。

4.从学历方面来看,最低学历需求主要以本科/大专为主,本科和大专学历要求的平均薪资分别为12.36K和13.71K,博士和硕士学历需求很少。

5.一些高薪的招聘企业,最高的可以给到30K~40K的薪酬水平,其中主要是互联网公司为主。

源代码

import pandas as pd
import warnings
warnings.filterwarnings('ignore')

data = pd.read_excel('BI工程师_智联招聘.xlsx')
data.head()
data.shape
data.info()
data.dropna(inplace=True)  # 删除缺失值
data.drop_duplicates(inplace=True)  # 删除重复值
data.shape
# 处理jobName
def dispose_jobname(x):
    # 剔除掉不包含‘bi’的jobname
    if 'bi' not in x.lower():
        return None
    else:
        return x

# 处理salary薪资
def dispose_salary(x):
    try:
        min_salary = int(x.split('-')[0][:-1])
        max_salary = int(x.split('-')[1][:-1])
        return (min_salary+max_salary)/2
    except:
        return None

# 调用jobname处理函数
data['jobName'] = data['jobName'].apply(dispose_jobname)
# 调用salary处理函数
data['salary'] = data['salary'].apply(dispose_salary)
# 处理city城市
data['city'] = data['city'].apply(lambda x:x.split('-')[0]+'市')
# 处理工作经验,将无经验归为不限
data['workingExp'].replace({'无经验':'不限'},inplace=True)
# 删除前面处理异常数据的None
data.dropna(inplace=True)
print(data.shape)
data.head()
import matplotlib.pylab as plt
import seaborn as sns
from pyecharts.charts import *
from pyecharts import options as  opts 
from pyecharts.globals import ThemeType
sns.set(font='SimHei')
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示
plt.rcParams['axes.unicode_minus'] = False   #解决符号无法显示
# 分析BI工程师岗位的评价薪资分布情况
sns.distplot(data['salary'],kde=True)
plt.title('平均薪资分布情况')
plt.show()
# 分析岗位学历要求
df1 = data['eduLevel'].value_counts()
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.ESSOS))
pie.add('数量',
        [list(z) for z in zip(df1.index.to_list(),df1.values.tolist())],
        radius=['50%','70%'])
pie.set_global_opts(title_opts=opts.TitleOpts(title="BI工程师岗位学历要求"))
pie.render_notebook()
# 分析经验要求
df2 = data['workingExp'].value_counts()
bar = Bar(init_opts=opts.InitOpts(theme = ThemeType.LIGHT)) # 添加背景
bar.add_xaxis(df2.index.to_list())
bar.add_yaxis('',df2.values.tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title="BI工程师岗位经验要求"))
bar.render_notebook()
# 分析哪种工作类型需求最多
from pyecharts.charts import WordCloud
import collections
result_list = []
for i in data['jobtype'].values:
    word_list = str(i).split('/')
    for j in word_list:
        for n in j.split(','):
            result_list.append(n)
result_list
word_counts = collections.Counter(result_list)
word_counts_top = word_counts.most_common(100)
print(word_counts_top)
wc = WordCloud()
wc.add('',word_counts_top)
wc.render_notebook()
# 分析各岗位
df3 = data['city'].value_counts()
city_data = city_data = [[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_=200,min_=1)
)
map.render(path='各城市岗位数量分布.html')
map.render_notebook() 
# 分析平均薪资最高的前十名城市
data.groupby('city')['salary'].sum().sort_values(ascending=False).head(10)[::-1].plot(kind='barh')
plt.title('薪资最高的前十名城市')
plt.xlabel('salary')
plt.show()
# 分析薪资最高的前十名公司及岗位信息
data.sort_values(by='salary',ascending=False)[['city','salary','company','jobtype']].head(10)
  • 79
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 112
    评论
评论 112
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值