据说今年找工作很难,不得不说行业化内卷严重,且近几年就业形势一直都不太好,一方面高校毕业生逐年在递增,另一方面,市场的岗位需求趋近饱和,一岗难求。
基于此,本文使用智联招聘、BOSS直聘等在线招聘平台的招聘人数数据,借助pandas和pyecharts两个包,绘制漏斗图,从招聘流程上解析人数的变化情况。
示例工具:anconda3.7
本文讲解内容:openpyxl、pyecharts使用
适用范围:招聘业务中的漏斗分析
使用pip命令下载pyecharts包,并指定下载的包的版本是1.9.0版本,如果下载速度比较慢的话,后面可以加一个-i清华镜像下载包,当出现Sussessfully的字样时,就表明pyecharts包已经安装好。
!pip install pyecharts==1.9.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
这里我们导入openpyxl库用于数据导入,以及pyecharts库用于数据可视化。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
import openpyxl
from pyecharts import options as opts
from pyecharts.charts import Funnel,Grid,Bar,Page
使用openpyxl库数据导入,读取指定路径的数据表,并指定读取工作表1该sheet表下的数据。
# 读取excel数据
workbook = openpyxl.load_workbook(r'C:Desktop招聘数据.xlsx')
sheet = workbook['工作表1']
新建一个空的列表[ ],使用sheet['A'][0].value可以读取指定单元格内的数据,如果要读取指定单元格区域的数据,可以使用for循环进行循环读取,用append命令将读取的数据合并在列表中,导入智联招聘数据如下。
value1 = []
title1 = sheet['A'][0].value
for cell in (sheet['B'][1::]): #定位数据位置
value1.append(cell.value)
title1
value1
同理导入BOSS直聘数据。
value2 = []
title2 = sheet['F'][0].value
for cell in (sheet['G'][1::]): #定位数据位置
value2.append(cell.value)
title2
value2
导入前程无忧的数据如下。
value3 = []
title3 = sheet['K'][0].value
for cell in (sheet['L'][1::]): #定位数据位置
value3.append(cell.value)
title3
value3
导入指定的数据区域。
value4 = []
for cell in (sheet['Q'][1::]): #定位数据位置
value4.append(cell.value)
value4
想要做出漏斗图,需要构造出含字段标签的数据集,我们使用列表解析式来生成,如果要做不同公司的漏斗图,就要分别构造数据集,数据集结果如下。
attr = ["浏览","简历", "约面", "到面", "offer","入职"]
value1 = [int(i) for i in value1]
data1 = [[attr[i], value1[i]] for i in range(len(attr))]
data1
data2 = [[attr[i], value2[i]] for i in range(len(attr))]
data2
data3 = [[attr[i], value3[i]] for i in range(len(attr))]
data3
绘制智联招聘人数的漏斗图,使用可视化对象Funnel(),导入数据data1,其他可视化配置可以默认或者使用参数进行设置,.render_notebook()命令可在notebook在线展示。
funnel1=(
Funnel()
.add(
series_name="人数/人",
#sort_='ascending',
data_pair=data1,
gap=2,
tooltip_opts=opts.TooltipOpts(),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title=title1, subtitle="招聘人数转化漏斗分析"))
)
funnel1.render_notebook()
同理制作BOSS直聘的招聘人数漏斗图。
funnel2=(
Funnel()
.add(
series_name="人数/人",
#sort_='ascending',
data_pair=data2,
gap=2,
tooltip_opts=opts.TooltipOpts(),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title=title2, subtitle="招聘人数转化漏斗分析"))
)
funnel2.render_notebook()
还有前程无忧的招聘人数漏斗图。
funnel3=(
Funnel()
.add(
series_name="人数/人",
#sort_='ascending',
data_pair=data3,
gap=2,
tooltip_opts=opts.TooltipOpts(),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title=title3, subtitle="招聘人数转化漏斗分析"))
)
funnel3.render_notebook()
如果想要做一个词云图,根据关键词的大小来呈现招聘人数的多少,导入视觉对象WordCloud,并且构造数据集words,即可制作词云图。
from pyecharts import options as opts
from pyecharts.charts import WordCloud
words = [(attr[i], value4[i]) for i in range(len(attr))]
wordcloud=(
WordCloud()
.add(
"人数",
words,
word_size_range=[30, 100],
textstyle_opts=opts.TextStyleOpts(font_family="cursive"))
.set_global_opts(title_opts=opts.TitleOpts(title="面试人数词云图"))
)
wordcloud.render_notebook()
以上做出各个招聘公司的招聘人数漏斗图,可看出,在整个招聘过程中,从网站浏览到筛选简历的过程中,基本有一半简历会被刷下来,所以,在找工作时,尤其要写出一份精美的简历,良好的简历让人眼前一亮,避免第一关就被PASS掉,可视化做出来后使用page命令,将前面的结果呈现在一张界面中,并可以保存为网页版结果。
page = Page(layout=Page.SimplePageLayout)#layout=Page.DraggablePageLayout自定义布局
page.add(funnel1,funnel2,funnel3,wordcloud)
page.render(r"C:Desktop招聘人数漏斗分析.html")
三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。
页面更新:2024-03-31
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号