Pandas+Pyecharts | 招聘信息数据可视化


大家好,我是 👉 【Python当打之年】

本期我们通过分析某招聘网站发布的python相关工作招聘信息数据,进行以下几个方面的分析:

  • 全国哪些城市岗位数量比较多
  • 哪些公司薪资待遇比较好
  • 哪些岗位需求量比较大
  • 普遍工资分布情况

涉及到的库:

Pandas — 数据处理

Pyecharts — 数据可视化

可视化部分:

柱状图 — Bar

饼状图 — Pie

地图 — Map

词云图 — stylecloud

1. 导入模块

升级 pyecharts 包:
可视化部分需要用到 pyecharts==1.9.0,已安装其他低版本的需要升级,如果未安装过pyecharts,直接pip安装就是最新版本。

# 导包
import re
import stylecloud
import pandas as pd
from PIL import Image
from pyecharts.charts import Bar
from pyecharts.charts import Map
from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import SymbolType
from pyecharts.globals import ThemeType

2. Pandas数据处理

2.1 读取数据

df = pd.read_excel('boss岗位.xlsx')
df.head()

在这里插入图片描述

2.2 查看索引、数据类型和内存信息

df.info()

在这里插入图片描述

一共有2913条招聘信息,福利列存在部分缺失值。

2.3 缺失值填充

福利列用"无"填充:

df['福利'].fillna('无',inplace=True)
df.isnull().sum()

2.4 列拆分(地区列拆分为城市、城区、地址三列)

df1 = df.copy()
df1[['城市', '城区','地址']] = df1['地区'].str.split('·', 3, expand = True)
df1.head(3)

在这里插入图片描述

2.5 删除部分列

这里我们删除地区列和详情页列:

df1.drop(['地区','详情页'],axis=1, inplace=True)

在这里插入图片描述

2.6 列重命名

我们将标题重命名为岗位,公司名重命名为公司名称:

df1.rename(columns={"标题": "岗位", "公司名": "公司名称"},inplace=True)

在这里插入图片描述

2.7 薪资列处理(拆分、时薪、日薪转换)

薪资列将日薪和时薪转换为月薪:
在这里插入图片描述

3. Pyecharts可视化

3.1 招聘数量前20的城市柱状图

代码:

dq = df1.groupby('城市')['岗位'].count().to_frame('数量').sort_values(by='数量',ascending=False).reset_index()
x_data = dq['城市'].values.tolist()[:20]
y_data = dq['数量'].values.tolist()[:20]
b1 = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK,bg_color=JsCode(color_js1),width='1000px',height='600px'))
        .add_xaxis(x_data)
        .add_yaxis('',
                   y_data ,
                   category_gap="50%",
                   label_opts=opts.LabelOpts(
                        font_size=12,
                        color='yellow',
                        font_weight='bold',
                        font_family='monospace',
                        position='insideTop',
                        formatter = '{b}\n{c}'  
                    ),
                  )
        .set_series_opts(
            itemstyle_opts={
                "normal": {
                    "color": JsCode(color_js),
                    "barBorderRadius": [15, 15, 0, 0],
                    "shadowColor": "rgb(0, 160, 221)",
                }
            }
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title='招 聘 数 量 前 20 的 城 市',
                                       title_textstyle_opts=opts.TextStyleOpts(color="yellow"),
                                       pos_top='7%',pos_left = 'center'
                                     ),
            legend_opts=opts.LegendOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
            yaxis_opts=opts.AxisOpts(name="",
                                     name_location='middle',
                                     name_gap=40,
                                     name_textstyle_opts=opts.TextStyleOpts(font_size=16)),
                         datazoom_opts=[opts.DataZoomOpts(range_start=1,range_end=50)]
                        )
    )

效果:

在这里插入图片描述

北京、上海、深圳等城市招聘数量位居三甲,杭州、广州、南京等城市次之。

3.2 平均薪资前20的城市柱状图

在这里插入图片描述

北京、深圳、上海等城市招聘数量位居前三,平均薪资也是前三。

3.3 最高薪资前十的公司柱状图(纵向)

在这里插入图片描述

华为、阿里巴巴、百度等企业平均薪资普遍较高。

3.4 各岗位占比饼图

pie = ( Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK,width='1000px',height='600px'))

    .add('学历', dic_job[::-1], radius=['40%', '70%'],
         itemstyle_opts={
             "normal": {
                        "barBorderRadius": [30, 30, 30, 30],
                        'shadowBlur': 10,
                        'shadowColor': 'rgba(0,191,255,0.5)',
                        'shadowOffsetY': 1,
                        'opacity': 0.8
                        }
                       }
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
        formatter="{b}:{d}%",
            color="#00c6d7",
            font_size="20",
        ),

    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="招聘岗位占比",
            pos_left='center',
            pos_top='center',
            title_textstyle_opts=opts.TextStyleOpts(
                color='#845ef7',
                font_size=28,
                font_weight='bold'
            ),
        ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                min_=50,
                max_=400,
                is_piecewise=False,
                dimension=0,
                range_color=['#faa2c1','#f783ac','#f06595','#d6336c','#a61e4d']
            ),
            legend_opts=opts.LegendOpts(is_show=False, pos_top='5%'),
    )
)

效果:

在这里插入图片描述

  • 数据分析岗位的需求量最大,达到了35%
  • 前端的岗位需求也达到了20%
  • 爬虫岗位大概占比10%

3.5 经验学历要求占比饼图

在这里插入图片描述

  • 大专学历,占比 33%
  • 本科学历,占比 25%
  • 经验不限/学历不限,占比 7%

3.6 招聘公司所在领域占比饼图

在这里插入图片描述
公司行领域中互联网和计算机服务行业,占比达到了 60% 。

3.7 招聘城市分布地图

查看:https://www.heywhale.com/mw/project/61cc0515affcaf09c188fe48

3.8 福利词云图

pic_name = '福利词云.png'
stylecloud.gen_stylecloud(
    text=' '.join(welfares_list),
    font_path=r'STXINWEI.TTF',
    palette='cartocolors.qualitative.Bold_5',
    max_font_size=100,
    icon_name='fas fa-yen-sign',
    background_color='#212529',
    output_name=pic_name,
    )

效果:
在这里插入图片描述

可以看出:五险一金(硬性规定)、带薪年假、节日福利、年终奖等是大家关注的核心问题。

篇幅原因,部分代码未完全展示,如果需要可在下方获取,也可在线运行(含全部代码+数据文件):
https://www.heywhale.com/mw/project/61cc0515affcaf09c188fe48


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

推荐阅读

Pandas+Pyecharts | 医院药品销售数据可视化
爬取《白蛇2:青蛇劫起》20000+影评数据分析可视化
可视化 | Python分析中秋月饼,这几种口味才是yyds!!!
123个Pandas常用基础指令,真香!
爬虫+可视化 | 动态展示2020东京奥运会奖牌世界分布
Pandas+Pyecharts | 北京某平台二手房数据分析+可视化
Pandas+Pyecharts | 2021中国大学综合排名分析+可视化
可视化 | Python绘制高颜值台风地理轨迹图
可视化 | 用Python分析近5000个旅游景点,告诉你假期应该去哪玩
可视化 | Python精美地图动态展示近20年全国各省市GDP
可视化 | Python陪你过520:在你身边,你在身边
爬虫 | Python送你王者荣耀官网全套皮肤
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!
技巧 | 20个Pycharm最实用最高效的快捷键(动态展示)
技巧 | 5000字超全解析Python三种格式化输出方式【% / format / f-string】
技巧 | python定时发送邮件(自动添加附件)
爬虫 | Python送你王者荣耀官网全套皮肤
爬虫 | 用python构建自己的IP代理池,再也不担心IP不够用啦!

文章首发微信公众号 “Python当打之年” ,每天都有python编程技巧推送,希望大家可以喜欢
在这里插入图片描述

  • 7
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值