借问钱程何处有——2019python职位分析

欢迎关注,敬请点赞!

加载并探索数据

import pandas as pd
import sqlite3

conn = sqlite3.connect('recruit.db')
job_df = pd.read_sql('select * from recruit',conn)

基本信息:

(1)welfare和address有缺失
(2)数据类型为object

job_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 95647 entries, 0 to 95646
Data columns (total 12 columns):
id              95647 non-null int64
info_source     95647 non-null object
job_name        95647 non-null object
min_salary      95647 non-null object
max_salary      95647 non-null object
city            95647 non-null object
compnay_name    95647 non-null object
welfare         92713 non-null object
work_years      95647 non-null object
education       95647 non-null object
address         94534 non-null object
job_detail      95647 non-null object
dtypes: int64(1), object(11)
memory usage: 4.7+ MB
job_df.head(5)

返回顶部

id info_source job_name min_salary max_salary city compnay_name welfare work_years education address job_detail
0 1665 1 Python开发工程师 15000.0 20000.0 北京-海淀区 融捷教育科技有限公司 无工作经验 招1人 北京市海淀区清华科技园科技大厦B座 1.精通Python,有python web开发经验,熟练使用Flask开发框架,掌握主流关...
1 1666 1 高级测试工程师 4500.0 6000.0 中山 房源控股 带薪年假,专业培训,绩效奖金,全勤奖,年底分红,五险一金,节日福利,交通补贴,通讯补贴,弹性工作 3-4年经验 大专 火炬开发区创意港B1702楼 招聘城市:深圳,广州,中山\n【岗位职责】:\n1、负责移动端及网站产品的功能测试;\n2、...
2 1667 1 技术支持工程师(运维) 3500.0 4500.0 河源 北京海鑫科金高科技股份有限公司 五险一金,补充医疗保险,交通补贴,餐饮补贴,通讯补贴,绩效奖金,定期体检,年终奖金 1年经验 大专 河源市区 岗位职责:\n1. 负责系统安装、调试与维护;\n2. 负责系统日常监控、数据备份与恢复;\...
3 1668 1 网络安全工程师(应届毕业生) 7000.0 9000.0 东莞-虎门镇 东莞沛顿科技有限公司 五险一金,专业培训,年终奖金 无工作经验 本科 赤岗社区骏马路2号中国电子产业园深科技园区 1. 网络及信息安全体系的策略制定;\n2. 网络及信息安全文档编写及体系推进;\n3. 网...
4 1669 1 软件测试 4000.0 6000.0 汕头 阿米巴网络科技有限公司 五险,餐饮补贴,年终奖金,全勤奖,定期体检,弹性工作,专业培训,绩效奖金 3-4年经验 大专 汕头市龙湖区奋发园主楼501 岗位职责:\n1、根据软件设计需求制定测试计划,分析需求,设计测试数据和测试用例;\n2、有...
job_df.tail(3)
id info_source job_name min_salary max_salary city compnay_name welfare work_years education address job_detail
95644 104924 3 测试经理 10000 15000 武汉 中诚信征信有限公司 五险一金,年底双薪,定期体检,节日礼物 3年以上 本科及以上 礼士胡同54号 岗位职责:,1. 负责测试团队建设,测试技能、自动化工具的不断完善,提高团队专业能力...
95645 104925 3 供需管理 8333 10000 武汉 每日优鲜 2018互联网300强,国家高新技术企业认定,独角兽,2018中国创新成长百强,2018德勤... 2年以上 统招本科 花样年喜年中心 职责描述:,1. 基于历史数据,通过对时间、天气和促销等内外因素分析,建立数据模型,对单仓单...
95646 104926 3 XMC -- 数据分析工程师(J10622) 8333 15000 武汉 武汉新芯集成电路制造有限公司 带薪年假,午餐补助,定期体检,免费班车,技能培训,五险一金,生育补贴,子女福利,发展空间大,... 3年以上 本科及以上 武汉市东湖新技术开发区高新四路18号 工作职责:,1.\t负责生产数据分析相关系统开发及维护。,2.\t通过业务数据分析,发掘用户...

不同学历职位分布

返回顶部

job_df.loc[:, ['education']].groupby('education').size()
education
12-30发布        1
中专           229
中技            17
其他             2
初中及以下          6
博士           482
博士后           33
大专         13648
大专及以上       3594
学历不限        3605
招10人         123
招11人           1
招12人           6
招15人          14
招1人         2103
招20人          16
招25人           1
招2人         1061
招30人           3
招3人          414
招41人           1
招4人          101
招50人           9
招5人          240
招6人           40
招77人           1
招7人            5
招8人           18
招9人            1
招若干人        1748
本科         35782
本科及以上      16756
硕士          3649
硕士及以上       2784
统招本科        9127
高中            26
dtype: int64

按学历规约

博士:博士、博士及以上;
硕士: 硕士、硕士及以上;
本科:本科、本科及以上、统招本科;
大专:大专、大专及以上;
中专:中专、中技、高中;
其他:发布、招

job_df.loc[job_df['education'] == '博士后', 'education'] = '博士'
job_df.loc[job_df['education'] == '硕士及以上', 'education'] = '硕士'
job_df.loc[job_df['education'] == '本科及以上', 'education'] = '本科'
job_df.loc[job_df['education'] == '统招本科', 'education'] = '本科'
job_df.loc[job_df['education'] == '大专及以上', 'education'] = '大专'
job_df.loc[job_df['education'] == '中技', 'education'] = '中专'
job_df.loc[job_df['education'] == '高中', 'education'] = '中专'
job_df.loc[job_df['education'].str.contains('招') | job_df['education'].str.contains('发布') | job_df['education'].str.contains('初中'), 'education'] = '其他'

按学历规约后

返回顶部

education_size = job_df.loc[:, ['education']].groupby('education').size()
education_size
education
中专        272
其他       5915
博士        515
大专      17242
学历不限     3605
本科      61665
硕士       6433
dtype: int64
dct = dict(education_size)
lst = [[dt, int(dct[dt])] for dt in dct]
lst
[['中专', 272],
 ['其他', 5915],
 ['博士', 515],
 ['大专', 17242],
 ['学历不限', 3605],
 ['本科', 61665],
 ['硕士', 6433]]

饼图

from pyecharts.charts import Pie
from pyecharts import options as opts


def pie_rich_label(lt) -> Pie:
    c = (
        Pie()
        .add(
            "",
            lt,
            radius=["40%", "55%"],
            label_opts=opts.LabelOpts(
                position="outside",
                formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ",
                background_color="#eee",
                border_color="#aaa",
                border_width=1,
                border_radius=4,
                rich={
                    "a": {"color": "#999", "lineHeight": 22, "align": "center"},
                    "abg": {
                        "backgroundColor": "#e3e3e3",
                        "width": "100%",
                        "align": "right",
                        "height": 22,
                        "borderRadius": [4, 4, 0, 0],
                    },
                    "hr": {
                        "borderColor": "#aaa",
                        "width": "100%",
                        "borderWidth": 0.5,
                        "height": 0,
                    },
                    "b": {"fontSize": 16, "lineHeight": 33},
                    "per": {
                        "color": "#eee",
                        "backgroundColor": "#334455",
                        "padding": [2, 4],
                        "borderRadius": 2,
                    },
                },
            ),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="不同学历岗位数量"))
    )
    return c
pie_rich_label(lst).render_notebook()

不同学历岗位数量

小节

本科是python语言就业的主力军,正如各行各业大量的工程师成就了中国制造大国和基建狂魔的地位,中国也逐步成为互联网大国,进而成为物联网和人工智能的强国。

不同学历薪资待遇

返回顶部

里面的“面议”用中位数median代替

job_df['min_salary'].unique()
array(['15000.0', '4500.0', '3500.0', '7000.0', '4000.0', '14000.0',
       '3000.0', '10000.0', '6000.0', '9000.0', '20000.0', '8000.0',
       '100000.0', '2000.0', '5000.0', '200000.0', '50000.0', '150000.0',
       '13000.0', '12000.0', '1500.0', '16000.0', '1000.0', '120000.0',
       '600000.0', '25000.0', '30000.0', '1000000.0', '18000.0',
       '180000.0', '500000.0', '400000.0', '40000.0', '80000.0',
       '11000.0', '2500.0', '300000.0', '4200.0', '250000.0', '186000.0',
       '5500.0', '17000.0', '70000.0', '60000.0', '160000.0', '35000.0',
       '240000.0', '350000.0', '800000.0', '2800.0', '28000.0', '1600.0',
       '90000.0', '130000.0', '5200.0', '96000.0', '1800.0', '3300.0',
       '220000.0', '140000.0', '199000.0', '110000.0', '2400.0',
       '104000.0', '156000.0', '78000.0', '3200.0', '37000.0', '21000.0',
       '22000.0', '5800.0', '1500000.0', '230000.0', '6100.0', '3800.0',
       '26000.0', '45000.0', '450000.0', '390000.0', '270000.0',
       '29000.0', '190000.0', '72000.0', '3400.0', '27000.0', '6500.0',
       '7500.0', '4800.0', '65000.0', '2100.0', '170000.0', '2300.0',
       '7900.0', '1200.0', '19000.0', '2600.0', '23000.0', '2200.0',
       '24000.0', '196000.0', '3000000.0', '280000.0', '210000.0',
       '370000.0', '6700.0', '36000.0', '330000.0', '3900.0', '4900.0',
       '3600.0', '4100.0', '6400.0', '5300.0', '10000', '面议', '10001',
       '20000', '5000', '8000', '6001', '2001', '7000', '12000', '1000',
       '6000', '15001', '4001', '13000', '4000', '8001', '3000', '30000',
       '15000', '3500', '30001', '20001', '25000', '17000', '9000',
       '11000', '5500', '5999', '22000', '7500', '18000', '50001', '2000',
       '4800', '4500', '2800', '16000', '8200', '14000', '5900', '28000',
       '100001', '4600', '13500', '6500', '12500', '3800', '24000',
       '12800', '70001', '19000', '2600', '27000', '50000', '1500',
       '23000', '2500', '8333', '3501', '5950', '35000', '40000', '4200',
       '1800', '4300', '3300', '4999', '11666', '8500', '100000', '16600',
       '6600', '29000', '26000', '4700', '1200', '6100', '16666', '32500',
       '8400', '4166', '18333', '17500', '6666', '19166', '10833', '5833',
       '13333', '22500', '9166', '21666', '14166', '70000', '38333',
       '23333', '3333', '44166', '66666', '20833', '28333', '15833',
       '25833', '65000', '26666', '80000', '31666', '1666', '29166',
       '45000', '27500', '37500', '33333', '833', '58333', '137500',
       '55000', '43333', '83333', '41666', '40833', '46666', '24166',
       '87500', '840000', '54166', '125000', '34166', '1250', '2083',
       '52500', '56666', '60000', '75000', '35833', '53333'], dtype=object)

最低薪资

min_salary_other = job_df[job_df['min_salary'] != '面议']['min_salary'].apply(lambda x:float(x))  # 对不是“面议”的转浮点数
job_df.loc[job_df['min_salary'] == '面议', 'min_salary'] = min_salary_other.median()  # 将中位数赋值给“面议”
job_df['min_salary'] = job_df['min_salary'].apply(lambda x:float(x))  # 转浮点数

最高薪资

max_salary_other = job_df[job_df['max_salary'] != '面议']['max_salary'].apply(lambda x:float(x))  # 对不是“面议”的转浮点数
job_df.loc[job_df['max_salary'] == '面议', 'max_salary'] = max_salary_other.median()  # 将中位数赋值给“面议”
job_df['max_salary'] = job_df['max_salary'].apply(lambda x:float(x))  # 转浮点数

按不同学历分组,并求平均薪资

education_salary = job_df.loc[:, ['education', 'min_salary', 'max_salary']].groupby('education').mean()
education_salary
min_salary max_salary
education
中专 6559.702206 9985.294118
其他 20836.348267 33832.527473
博士 48622.669903 83772.464078
大专 10063.286104 16614.739531
学历不限 10691.994730 17626.093759
本科 16470.918090 27518.902278
硕士 25675.378983 44168.505674

薪资转整数

min_list = [int(i) for i in list(education_salary.min_salary)]
min_list
[6559, 20836, 48622, 10063, 10691, 16470, 25675]

柱状图

max_list = [int(i) for i in list(education_salary.max_salary)]
max_list
[9985, 33832, 83772, 16614, 17626, 27518, 44168]
from pyecharts.charts import Bar


def bar_base() -> Bar:
    c = (
        Bar()
        .add_xaxis(list(education_salary.index))
        .add_yaxis("min_salary", min_list)
        .add_yaxis("max_salary", max_list)
        .set_global_opts(title_opts=opts.TitleOpts(title="不同学历薪水分布", subtitle="工资(元)"))
    )
    return c
bar_base().render_notebook()

不同学历薪水分布

小节:

(1)高一级学历的最低工资相当于低一级学历的最高工资。对于大多数人来说,学历是改变人生的硬核之一。
(2)同一学历的最高工资约为最低工资的1.6倍,能力和努力也很重要。

岗位详情词云

返回顶部

停止词表

import jieba
stop_word = [word.strip() for word in open('stop_word.txt',encoding='utf-8').readlines()]
stop_word.extend(['.', ' ', '\n', '\xa0', ',', '有'])

热词字典

result_word = {}
for word_str in job_df['job_detail'][0:5]:  # 仅用前5条数据,节约时间
    for word in jieba.cut(word_str):
        if word not in stop_word:
            if word not in result_word:
                result_word[word] = 1
            else:
                result_word[word] += 1
list_word = sorted(result_word.items(), key=lambda dt:dt[1], reverse=True)[0:200]

词云图

from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType


def wordcloud_diamond(words) -> WordCloud:
    c = (
        WordCloud()
        .add("", words, word_size_range=[20, 100], shape=SymbolType.DIAMOND)
        .set_global_opts(title_opts=opts.TitleOpts(title="岗位详情词云"))
    )
    return c
wordcloud_diamond(list_word).render_notebook()

词云图

岗位要求小节:

(1)熟悉相关算法,具备数据分析能力;
(2)具有项目开发经验;
(3)团队意识和学习能力

不同就业方向分布

返回顶部
(web,爬虫,数据分析,自动化测试,自动化运维,嵌入式,机器学习,讲师)

就业方向规约(依据岗位详情)

# 增加一列就业方向,初始化为“其他”
job_df['job_direction'] = '其他就业方向'
job_df.loc[job_df['job_detail'].str.contains('web') | job_df['job_detail'].str.contains('flask') | job_df['job_detail'].str.contains('django') | job_df['job_detail'].str.contains('JQuery') | job_df['job_detail'].str.contains('JavaScript') | job_df['job_detail'].str.contains('Bootstrap') | job_df['job_detail'].str.contains('js'), 'job_direction'] = 'web'
job_df.loc[job_df['job_detail'].str.contains('爬虫') | job_df['job_detail'].str.contains('反爬') | job_df['job_detail'].str.contains('抓取') | job_df['job_detail'].str.contains('爬取') | job_df['job_detail'].str.contains('scrapy'), 'job_direction'] = '爬虫'
job_df.loc[job_df['job_detail'].str.contains('运维') | job_df['job_detail'].str.contains('维护'), 'job_direction'] = '自动化运维'
job_df.loc[job_df['job_detail'].str.contains('测试') | job_df['job_name'].str.contains('测试') | job_df['job_detail'].str.contains('验证'), 'job_direction'] = '自动化测试'
job_df.loc[job_df['job_detail'].str.contains('嵌入式') | job_df['job_detail'].str.contains('机电') | job_df['job_detail'].str.contains('电子'), 'job_direction'] = '嵌入式'
job_df.loc[job_df['job_detail'].str.contains('数据分析') | job_df['job_detail'].str.contains('数据挖掘') | job_df['job_detail'].str.contains('数据清洗') | job_df['job_detail'].str.contains('数学'), 'job_direction'] = '数据分析'
job_df.loc[job_df['job_detail'].str.contains('机器学习') | job_df['job_detail'].str.contains('人工智能') | job_df['job_name'].str.contains('人工智能') | job_df['job_detail'].str.contains('深度学习') | job_df['job_detail'].str.contains('神经网络'), 'job_direction'] = '机器学习'
job_df.loc[job_df['job_detail'].str.contains('讲师') | job_df['job_detail'].str.contains('授课'), 'job_direction'] = '讲师'
job_df.loc[job_df['job_direction'] == '其他就业方向', ['job_name', 'job_detail']].groupby('job_name').size()
    job_name
     Analysis and Data Reporting                1
     Cyberport Network Engineer                 7
     DBA                                        1
     IAAS 研发工程师                                 6
     IT Specialist                              1
                                               ..
    (急聘)Python开发工程师                             1
    (接受转行)python工程师助理/python开发学徒/python程序员      2
    (烟台)C++/JAVA/C中高级软件开发(职位编号:QDXS-0005)       1
    (烟台)中高级软件开发工程师                              1
    (补贴+包住宿)python工程师助理/python开发学徒/python程序员    2
    Length: 7574, dtype: int64

规约后不同就业方向分布

direction_size = job_df.loc[:, ['job_direction']].groupby('job_direction').size()
direction_size
job_direction
web        3907
其他就业方向    17953
嵌入式        5065
数据分析      12579
机器学习      18301
爬虫          635
自动化测试     20079
自动化运维     15879
讲师         1249
dtype: int64
dct_direction = dict(direction_size)

漏斗图

from pyecharts.charts import Funnel, Page

def funnel_sort_ascending(dct) -> Funnel:
    c = (
        Funnel()
        .add(
            "岗位数量",
            [(key, int(value)) for key, value in dct.items()],
            sort_="ascending",
            label_opts=opts.LabelOpts(position="outside"),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="不同就业方向岗位数量"), legend_opts=opts.LegendOpts(pos_left="right", pos_top="5%"))
    )
    return c
funnel_sort_ascending(dct_direction).render_notebook()

就业方向小节:

(1)python胶水语言的特性,非常适合自动化测试和自动化运维。
(2)python语言因其数据精度高、简单易学和丰富的第三方库,成为数据分析和机器学习的主流语言,人工智能和python互相成就。
(3)讲师方面的岗位不多,但随着国家对人工智能和编程教育的重视,预期会有一定增长。

不同城市招聘情况

返回顶部

按城市规约

job_df.loc[job_df['city'].str.contains('上海'), 'city'] = '上海'
job_df.loc[job_df['city'].str.contains('北京'), 'city'] = '北京'
job_df.loc[job_df['city'].str.contains('广州'), 'city'] = '广州'
job_df.loc[job_df['city'].str.contains('深圳'), 'city'] = '深圳'
job_df.loc[job_df['city'].str.contains('杭州'), 'city'] = '杭州'
job_df.loc[job_df['city'].str.contains('天津'), 'city'] = '天津'
job_df.loc[job_df['city'].str.contains('重庆'), 'city'] = '重庆'
job_df.loc[job_df['city'].str.contains('成都'), 'city'] = '成都'
job_df.loc[job_df['city'].str.contains('武汉'), 'city'] = '武汉'
job_df.loc[job_df['city'].str.contains('郑州'), 'city'] = '郑州'
job_df.loc[job_df['city'].str.contains('西安'), 'city'] = '西安'
job_df.loc[job_df['city'].str.contains('南京'), 'city'] = '南京'
job_df.loc[job_df['city'].str.contains('青岛'), 'city'] = '青岛'
job_df.loc[job_df['city'].str.contains('东莞'), 'city'] = '东莞'
job_df.loc[job_df['city'].str.contains('中山'), 'city'] = '中山'
job_df.loc[job_df['city'].str.contains('佛山'), 'city'] = '佛山'
job_df.loc[job_df['city'].str.contains('长沙'), 'city'] = '长沙'
job_df.loc[job_df['city'].str.contains('乌鲁木齐'), 'city'] = '乌鲁木齐'
job_df.loc[job_df['city'].str.contains('济南'), 'city'] = '济南'
job_df.loc[job_df['city'].str.contains('宁波'), 'city'] = '宁波'
job_df.loc[job_df['city'].str.contains('苏州'), 'city'] = '苏州'
job_df.loc[job_df['city'].str.contains('沈阳'), 'city'] = '沈阳'
job_df.loc[job_df['city'].str.contains('福州'), 'city'] = '福州'
job_df.loc[job_df['city'].str.contains('合肥'), 'city'] = '合肥'
job_df.loc[job_df['city'].str.contains('兰州'), 'city'] = '兰州'
job_df.loc[job_df['city'].str.contains('南宁'), 'city'] = '南宁'
job_df.loc[job_df['city'].str.contains('南昌'), 'city'] = '南昌'
job_df.loc[job_df['city'].str.contains('绍兴'), 'city'] = '绍兴'
job_df.loc[job_df['city'].str.contains('厦门'), 'city'] = '厦门'
job_df.loc[job_df['city'].str.contains('泉州'), 'city'] = '泉州'
job_df.loc[job_df['city'].str.contains('常州'), 'city'] = '常州'
job_df.loc[job_df['city'].str.contains('南通'), 'city'] = '南通'
job_df.loc[job_df['city'].str.contains('哈尔滨'), 'city'] = '哈尔滨'
job_df.loc[job_df['city'].str.contains('嘉兴'), 'city'] = '嘉兴'
job_df.loc[job_df['city'].str.contains('大连'), 'city'] = '大连'
job_df.loc[job_df['city'].str.contains('太原'), 'city'] = '太原'
job_df.loc[job_df['city'].str.contains('徐州'), 'city'] = '徐州'
job_df.loc[job_df['city'].str.contains('无锡'), 'city'] = '无锡'
job_df.loc[job_df['city'].str.contains('昆明'), 'city'] = '昆明'
job_df.loc[job_df['city'].str.contains('石家庄'), 'city'] = '石家庄'
job_df.loc[job_df['city'].str.contains('贵阳'), 'city'] = '贵阳'
job_df.loc[job_df['city'].str.contains('长春'), 'city'] = '长春'
job_df.loc[job_df['city'].str.contains('洛阳'), 'city'] = '洛阳'
job_df.loc[job_df['city'].str.contains('烟台'), 'city'] = '烟台'
job_df.loc[job_df['city'].str.contains('珠海'), 'city'] = '珠海'

主要城市招聘数量

dct_city = dict(job_df.loc[:, ['city']].groupby('city').size())
lst_city = [[key, value] for key, value in dct_city.items()]
lst_city.sort(key=lambda lt:lt[1], reverse=True)
lst_city[0:20]
[['深圳', 16242],
 ['广州', 9410],
 ['上海', 9159],
 ['杭州', 8096],
 ['成都', 6758],
 ['南京', 6565],
 ['北京', 5789],
 ['武汉', 4042],
 ['苏州', 2988],
 ['西安', 2463],
 ['郑州', 1959],
 ['济南', 1516],
 ['长沙', 1463],
 ['厦门', 1386],
 ['合肥', 1338],
 ['福州', 1330],
 ['大连', 1221],
 ['青岛', 1050],
 ['无锡', 978],
 ['沈阳', 818]]

主要城市薪水中位数

for lt in lst_city[0:20]:
    lt.append(job_df.loc[job_df['city'] == lt[0],'min_salary'].median())
    lt.append(job_df.loc[job_df['city'] == lt[0],'max_salary'].median())
lst_city[0:20]
[['深圳', 16242, 13000.0, 20000.0],
 ['广州', 9410, 10000.0, 20000.0],
 ['上海', 9159, 13000.0, 20000.0],
 ['杭州', 8096, 12000.0, 20000.0],
 ['成都', 6758, 10000.0, 18000.0],
 ['南京', 6565, 10000.0, 20000.0],
 ['北京', 5789, 15000.0, 20000.0],
 ['武汉', 4042, 9166.0, 15000.0],
 ['苏州', 2988, 10000.0, 18333.0],
 ['西安', 2463, 8333.0, 15000.0],
 ['郑州', 1959, 8001.0, 13333.0],
 ['济南', 1516, 8001.0, 15000.0],
 ['长沙', 1463, 8000.0, 14000.0],
 ['厦门', 1386, 10000.0, 16000.0],
 ['合肥', 1338, 8000.0, 15000.0],
 ['福州', 1330, 8000.0, 15000.0],
 ['大连', 1221, 8333.0, 15000.0],
 ['青岛', 1050, 8333.0, 15000.0],
 ['无锡', 978, 8333.0, 15000.0],
 ['沈阳', 818, 6001.0, 10000.0]]

折线图

from pyecharts.charts import Line


def line_base(lst) -> Line:
    c = (
        Line()
        .add_xaxis([lt[0] for lt in lst])
        .add_yaxis('岗位数',[int(lt[1]) for lt in lst])
        .add_yaxis("最低工资中位数", [lt[2] for lt in lst])
        .add_yaxis("最高工资中位数", [lt[3] for lt in lst])
        .set_global_opts(title_opts=opts.TitleOpts(title="主要城市岗位数量和薪水"))
    )
    return c
line_base(lst_city[0:20]).render_notebook()

主要城市招聘情况

就业城市小节:

(1)互联网行业主要集中在一线城市,招聘数量最多的是深圳,其数量是排名20的沈阳招聘数量的20倍。
(2)北京的招聘数量并不多,但工资较高,符合北京的城市定位和人口限制政策。
(3)二线城市中,杭州和成都紧追一线城市;武汉、郑州的互联网行业暂未发展起来,工资相对较低;而苏州、厦门招聘数量虽不多,但工资水平与其房价水平匹配

欢迎关注,敬请点赞!
返回顶部

原创文章 43 获赞 14 访问量 2871

猜你喜欢

转载自blog.csdn.net/weixin_45221012/article/details/103747080
今日推荐