基于Python 和 pyecharts 制作招聘数据可视化分析大屏

在本教程中,我们将展示如何使用 Python 和 pyecharts 库,通过对招聘数据的分析,制作一个交互式的招聘数据分析大屏。此大屏将通过不同类型的图表(如柱状图、饼图、词云图等)展示招聘行业、职位要求、薪资分布等信息。
在这里插入图片描述

1. 准备工作

1.1 安装必要的 Python 库

在开始之前,确保你已经安装了以下 Python 库:

pip install pandas pyecharts jieba openpyxl
  • pandas:用于数据处理。
  • pyecharts:用于生成可交互的图表。
  • jieba:用于中文分词。
  • openpyxl:用于读取 Excel 文件。

1.2 数据集准备

假设我们已经有一个招聘数据集 tmp.xlsx,它包含以下字段:

  • Industry:行业
  • Job Experience:工作经验要求
  • Job Education:学历要求
  • Staff Size:公司规模
  • Job Location:工作地点
  • key_word_list:关键词列表
  • Job Intro:职位介绍
  • lowest_salary:最低薪资
  • highest_salary:最高薪资

数据集的每一行代表一个招聘职位信息。

2. 数据加载与处理

2.1 读取数据

我们使用 pandas 读取 Excel 文件,并进行一些初步的数据清理。

import pandas as pd# 读取 Excel 数据
df_reset = pd.read_excel('./tmp.xlsx')# 查看数据基本信息
print(df_reset.head())

2.2 统计行业数量

我们通过 Counter 来统计招聘数据中不同行业的数量,跳过 “None” 值。

from collections import Counter# 统计行业数量,跳过 "None" 值
industry_count = Counter(industry for industry in df_reset['Industry'] if industry != 'None')# 获取前 10 个最常见的行业
industry_count_top10 = dict(industry_count.most_common(10))

2.3 统计工作经验和学历要求

我们同样可以对工作经验和学历要求进行统计,并获取前 10 个最常见的要求。

# 统计工作经验要求
education_counts = pd.Series(df_reset['Job Experience']).value_counts()
top10_education_counts = education_counts.head(10)# 统计学历要求
education_counts = pd.Series(df_reset['Job Education']).value_counts()
top10_education_counts = education_counts.head(10)

2.4 处理员工规模

对于员工规模字段,我们需要将包含字符串 “None” 的值替换为 NaN,然后进行统计。

# 替换 "None" 为 NaN
df_reset['Staff Size'] = df_reset['Staff Size'].replace('None', pd.NA)
size_counts = df_reset['Staff Size'].value_counts().dropna()

2.5 处理职位地点

为了分析职位的地理分布,我们将城市名称处理为带有“市”字的格式,并统计不同城市的数量。

# 定义函数,在每个有效字符串值后面添加"市"
def add_city(value):if isinstance(value, str):return value + "市"return value# 应用函数到 Job Location 列
df_reset["Job Location"] = df_reset["Job Location"].apply(add_city)# 去除空值行
df_reset1 = df_reset.dropna(subset=["Job Location"])# 统计职位地点
location_counts = df_reset1['Job Location'].value_counts().reset_index()

2.6 关键词提取和频率统计

我们从职位介绍中提取关键词,并统计它们的出现频率。使用 jieba 库进行中文分词,并过滤停用词。

import jieba
from collections import Counter# 提取所有关键词
all_keywords = []
for keywords in df_reset1["key_word_list"].dropna():all_keywords.extend(keywords.split(','))# 统计关键词出现频率
keyword_counts = Counter(all_keywords)# 获取前 10 个关键词
top_ten_keywords = keyword_counts.most_common(10)
keywords, counts = zip(*top_ten_keywords)

3. 数据可视化

我们将使用 pyecharts 库来生成各种类型的图表,展示数据的不同方面。

3.1 设置主题与表格

首先,设置一些基础配置,比如页面主题和表格颜色。

from pyecharts import options as opts
from pyecharts.components import Table
from pyecharts.globals import ThemeType
from pyecharts.charts import Pagetheme_config = ThemeType.PURPLE_PASSION  # 更改为您需要的主题类型# 设置表格颜色
table_color = '#5B5C6E'  # 紫色主题的颜色

3.2 创建柱状图:行业数量

我们将创建一个柱状图,展示前 10 个行业的招聘数量。

from pyecharts.charts import Barbar_chart = Bar(init_opts=opts.InitOpts(theme=theme_config, width="450px", height="350px"))
bar_chart.add_xaxis(list(industry_count_top10.keys()))
bar_chart.add_yaxis("行业数量", list(industry_count_top10.values()))
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="前十大行业数量"))

在这里插入图片描述

3.3 创建饼图:学历要求分布

使用 Pie 图来展示工作经验和学历要求的分布。

from pyecharts.charts import Piepie_chart_education = Pie(init_opts=opts.InitOpts(theme=theme_config, width="450px", height="350px"))
sizes = [int(count) for count in top10_education_counts]
pie_chart_education.add("", [list(z) for z in zip(top10_education_counts.index, sizes)], radius=["30%", "75%"], rosetype="radius")
pie_chart_education.set_global_opts(title_opts=opts.TitleOpts(title="学历要求分布"))

在这里插入图片描述

3.4 创建雷达图:职位地点

为了展示职位地点的分布,我们使用 Radar 图。

from pyecharts.charts import Radarradar = Radar(init_opts=opts.InitOpts(theme=theme_config, width="450px", height="350px"))
radar.add_schema(schema=[opts.RadarIndicatorItem(name=city, max_=1000) for city in location_counts['Job Location']]
)
radar.add("职位地点", [location_counts['Job Location'].tolist()], areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
radar.set_global_opts(title_opts=opts.TitleOpts(title="职位地点雷达图"))

在这里插入图片描述

3.5 创建词云图:职位介绍

使用 WordCloud 图展示职位介绍中的高频词。

from pyecharts.charts import WordCloudwordcloud = WordCloud(init_opts=opts.InitOpts(theme=theme_config, width="450px", height="350px"))
wordcloud.add("", top_words, word_size_range=[20, 100])
wordcloud.set_global_opts(title_opts=opts.TitleOpts(title="职位介绍词云图"))

在这里插入图片描述

3.6 创建薪资分布直方图

计算每个职位的平均薪资,并绘制薪资分布的直方图。

df_reset['average_salary'] = (df_reset['lowest_salary'] + df_reset['highest_salary']) / 2
salary_distribution = df_reset['average_salary'].value_counts().sort_index().reset_index()salary_histogram = Bar(init_opts=opts.InitOpts(theme=theme_config, width="450px", height="350px"))
salary_histogram.add_xaxis(salary_distribution['index'].astype(str).tolist())
salary_histogram.add_yaxis("Frequency", salary_distribution['average_salary'].tolist())
salary_histogram.set_global_opts(title_opts=opts.TitleOpts(title="薪资分布"))

在这里插入图片描述

3.7 将所有图表组合成页面

最后,我们将所有生成的图表组合成一个页面,并渲染为 HTML 文件。

page = Page(page_title="基于Python分析大屏")
page.add(bar_chart,pie_chart_education,radar,wordcloud,salary_histogram
)page.render('招聘分析大屏.html')

4. 结果展示

运行完上述代码后,你将得到一个名为 招聘分析大屏.html 的文件。打开这个 HTML 文件,你将看到一个交互式的招聘数据分析大屏,展示了不同的图表和统计结果,包括行业分布、学历要求、职位地点等信息。
在这里插入图片描述

总结

本教程展示了如何利用 Python 和 pyecharts 库,从招聘数据中提取关键信息,并通过多种可视化图表呈现分析结果。你可以根据自己的需求调整数据来源和图表类型,进一步扩展和优化你的数据分析大屏。
在这里插入图片描述

数据集和代码可添加

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

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

相关文章

人力资源招聘系统的革新之路:从传统到智能的转变

在全球化与数字化交织的今天,企业间的竞争日益激烈,而人才作为企业发展的核心驱动力,其重要性不言而喻。传统的人力资源招聘方式,如依赖纸质简历、人工筛选、面对面面试等,不仅效率低下,且难以精准匹配企业…

UE5 UE4 播放视频没有声音解决

开启AVF插件 在项目设置中,AVF 的调试打开。 在项目设置中,WMF Media 中,allow Non standard Codecs,Low Latency 和 Native Audio Out打开。

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时,一张表不足以查询到我们想要的数据,更多的时候我们需要联表查询。 联表查询我们一般会使用连接…

如何在CentOS 7上搭建SMB服务

如何在CentOS 7上搭建SMB服务 因项目测试需求,需要自行搭建SMB服务,**SMB(Server Message Block)**协议是一种常用的文件共享方式,它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…

使用CNN进行验证码识别:深度学习与图像预处理教程

验证码(CAPTCHA)广泛用于区分人类和自动化程序(如机器人),通常由扭曲的字母、数字或符号组成。为了实现验证码的自动识别,深度学习尤其是卷积神经网络(CNN)非常有效。本文将带你一起…

STM32 51单片机设计半导体制冷片温控设计

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 基于STM32与51单片机的半导体制冷片温控设计 前言 随着现代工业、医疗…

ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势,商品拍卖当然也不能排除在外,随着商品拍卖管理的不断成熟,它彻底改变了过去传统的经营管理方式,不仅使商品…

算法每日双题精讲——滑动窗口(长度最小的子数组,无重复字符的最长子串)

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…

批量从Excel某一列中找到符合要求的值并提取其对应数据

本文介绍在Excel中,从某一列数据中找到与已知数据对应的字段,并提取这个字段对应数值的方法。 首先,来明确一下我们的需求。现在已知一个Excel数据,假设其中W列包含了上海市全部社区的名称,而其后的Y列则是这些社区对应…

MaxKB

docker 安装 MaxKB docker run -d --namemaxkb --restartalways -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkbdocker psCONTAINER ID IMAGE …

越南很火的slots游戏投放Google谷歌广告策略

越南很火的slots游戏投放Google谷歌广告策略 越南的slot游戏市场正在借助Google广告代投策略推动增长。随着智能手机的普及和互联网的普及,越南的游戏市场迅速增长,吸引了越来越多的投资者和开发者进入该市场。 在这个竞争激烈的市场中,广告…

现代无线通信接收机架构:超外差、零中频与低中频的比较分析

写在前面:本博客是对三种接收机架构的学习笔记,仅供个人学习记录使用。内容主要是上网查阅的资料,以及个人的一些理解。如有错误的地方请指出! 文章目录 一、通信机基本架构1、射频发射级的基本组成及完成功能2、射频接收级的基本…

探索MoviePy:Python视频编辑的瑞士军刀

文章目录 🎬 探索MoviePy:Python视频编辑的瑞士军刀第一部分:背景介绍第二部分:MoviePy是什么?第三部分:如何安装MoviePy?第四部分:MoviePy的基本函数使用方法1. 视频剪辑2. 视频拼接…

修改数据库和表的字符集

1、修改数据库字符集 mysql> show CHARACTER SET; 查看所有字符集 mysql> show create database wordpress; 查看数据库wordpress当前字符集mysql> alter database wordpress character set gbk; 将数据库wordpress字符集改为gb…

67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)

一、前言 这份报告是埃森哲_XX集团信息发展规划IT治理优化方案,报告中详细阐述了XX集团如何优化IT治理结构以适应新的要求。报告还分析了集团管控模式的变化,提出了六大业务中心的差异化管控策略,并探讨了这些变化对IT治理模式的影响。报告进…

C# WPF FontDialog字体对话框,ColorDialog颜色对话框 引用

WPF 并没有内置FontDialog和ColorDialog,但可以通过引用 Windows Forms 的控件来实现字体和颜色选择对话框功能。FontDialog 允许用户选择字体、样式、大小等设置。 添加 Windows Forms的引用 项目工程:右键“引用”》“添加引用”》勾选System.Windows…

家政服务小程序,家政行业数字化发展下的优势

今年以来,家政市场需求持续增长,市场规模达到了万亿级别,家政服务行业成为了热门行业之一! 家政服务种类目前逐渐呈现了多样化,月嫂、保姆、做饭保洁、收纳、维修等家政种类不断出现,满足了居民日益增长的…

kubernetes简单入门实战

本章将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,k8s集群中的所有的Pod都是可以相…

2分钟在阿里云ECS控制台部署个人应用(图文示例)

作为一名程序员,我有大量的个人代码和应用托管在Github/Gitee这些代码仓库。当我想要部署这些代码到我的阿里云ECS服务器时,往往会很麻烦,主要问题有这些: 需要手动安装和配置git,过程非常繁琐。每次都需要登录到机器…

【Kafka】集成案例:与Spark大数据组件的协同应用

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是kafka 2、Kafka 的主要特性 3、Kafka 的…