Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2021厦门招聘数据分析

2021厦门招聘数据分析

作者头像
润森
发布于 2022-12-20 13:05:58
发布于 2022-12-20 13:05:58
1.1K02
代码可运行
举报
文章被收录于专栏:毛利学Python毛利学Python
运行总次数:2
代码可运行

1. 数据集说明

这是一份来自厦门人才网的企业招聘数据,采集日期为 2021-01-14,总计 100,077 条记录,大小为 122 M,包含 19 个字段。

2. 数据处理

2.1 数据清洗

使用 pandas 对数据进行清洗,主要包括:去重、缺失值填充、格式化、计算冗余字段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 数据重复处理: 删除重复值
# print(data[data.duplicated()])
data.drop_duplicates(inplace=True)
data.reset_index(drop=True, inplace=True)

# 缺失值查看、处理:
data.isnull().sum()

# 招聘人数处理:缺失值填 1 ,一般是一人; 若干人当成 3人
data['num'].unique()
data['num'].fillna(1, inplace=True)
data['num'].replace('若干', 3, inplace=True)

# 年龄要求:缺失值填 无限;格式化
data['age'].unique()
data['age'].fillna('不限', inplace=True)
data['age'] = data['age'].apply(lambda x: x.replace('岁至', '-').replace('岁', ''))

# 语言要求: 忽视精通程度,格式化
data['lang'].unique()
data['lang'].fillna('不限', inplace=True)
data['lang'] = data['lang'].apply(lambda x: x.split('水平')[0] )
data['lang'].replace('其他', '不限', inplace=True)

# 月薪: 格式化。根据一般经验取低值,比如 5000-6000,5000
data['salary'].unique()
data['salary'] = data['salary'].apply(lambda x: x.replace('参考月薪: ', '') if '参考月薪: ' in str(x) else x)
data['salary'] = data['salary'].apply(lambda x: x.split('-', 1)[0] if '-' in str(x) else x )
data['salary'].fillna('0', inplace=True)

# 其它岗位说明:缺失值填无
data.fillna('其他', inplace=True)

# 工作年限格式化
def jobage_clean(x):
    if x in ['应届生', '不限']:
        return x
    elif re.findall('\d+年', x):
        return re.findall('(\d+)年', x)[0]
    elif '年' in x:
        x = re.findall('\S{1,2}年', x)[0]
        x = re.sub('厂|验|年|,', '', x)
        digit_map = {
            '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '十':10,
            '十一': 11, '十二': 12, '十三': 13, '十四': 14, '十五': 15, '十六': 16, '两':2
        }
        return digit_map.get(x, x)
    return '其它工作经验'

data['jobage'].unique()
data['jobage'] = data['jobage'].apply(jobage_clean)

# 性别格式化
data['sex'].unique()
data['sex'].replace('无', '不限', inplace=True)

# 工作类型格式化
data['job_type'].unique()
data['job_type'].replace('毕业生见习', '实习', inplace=True)

# 学历格式化
data['education'].unique()
data['education'] = data['education'].apply(lambda x: x[:2])

# 公司类型 格式化
def company_type_clean(x):
    if len(x) > 100 or '其他' in x:
        return '其他'
    elif re.findall('私营|民营', x):
        return '民营/私营'
    elif re.findall('外资|外企代表处', x):
        return '外资'
    elif re.findall('合资', x):
        return '合资'
    return x

data['company_type'].unique()
data['company_type'] = data['company_type'].apply(company_type_clean)

# 行业 格式化。多个行业,取第一个并简单归类
def industry_clean(x):
    if len(x) > 100  or '其他' in x:
        return '其他'
    industry_map = {
        'IT互联网': '互联网|计算机|网络游戏', '房地产': '房地产', '电子技术': '电子技术', '建筑': '建筑|装潢',
        '教育培训': '教育|培训', '批发零售': '批发|零售', '金融': '金融|银行|保险', '住宿餐饮': '餐饮|酒店|食品',
        '农林牧渔': '农|林|牧|渔', '影视文娱': '影视|媒体|艺术|广告|公关|办公|娱乐', '医疗保健': '医疗|美容|制药',
        '物流运输': '物流|运输', '电信通信': '电信|通信', '生活服务': '人力|中介'
    }
    for industry, keyword in industry_map.items():
        if re.findall(keyword, x):
            return industry
    return x.split('、')[0].replace('/', '')

data['industry'].unique()
data['industry'] = data['industry'].apply(industry_clean)

# 工作时间格式化
data['worktime'].unique()
data['worktime_day'] = data['worktime'].apply(lambda x: x.split('小时')[0] if '小时' in x else 0)
data['worktime_week'] = data['worktime'].apply(lambda x: re.findall('\S*周', x)[0] if '周' in x else 0)

# 从工作要求中正则解析出:技能要求
data['skill'] = data['require'].apply(lambda x: '、'.join(re.findall('[a-zA-Z]+', x)))

2.2 数据导入

将清洗后的数据导入到 hive

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE `job`(
    `position` string COMMENT '职位',
    `num` string COMMENT '招聘人数',
    `company` string COMMENT '公司',
    `job_type` string COMMENT '职位类型',
    `jobage` string COMMENT '工作年限',
    `lang` string COMMENT '语言',
    `age` string COMMENT '年龄',
    `sex` string COMMENT '性别',
    `education` string COMMENT '学历',
    `workplace` string COMMENT '工作地点',
    `worktime` string COMMENT '工作时间',
    `salary` string COMMENT '薪资',
    `welfare` string COMMENT '福利待遇',
    `hr` string COMMENT '招聘人',
    `phone` string COMMENT '联系电话',
    `address` string COMMENT '联系地址',
    `company_type` string COMMENT '公司类型',
    `industry` string COMMENT '行业',
    `require` string COMMENT '岗位要求',
    `worktime_day` string COMMENT '工作时间(每天)',
    `worktime_week` string COMMENT '工作时间(每周)',
    `skill` string COMMENT '技能要求'
)
row format delimited
fields terminated by ','
lines terminated by '\n';

-- 加载数据
LOAD DATA INPATH '/tmp/job.csv' OVERWRITE INTO TABLE job;

通过 hue 查看一下数据

image-20210121195311442

然后随便点击一条数据,可以看到,经过前面的清洗,现在的字段已经很好看了,后续的分析也会变得简单许多。

image-20210122171323036

3. 数据分析可视化

3.1 整体情况(招聘企业数、岗位数、招聘人数、平均工资)

招聘企业数为 10093,在招的岗位数有 10 万个,总的招聘人数为 26 万人,平均工资为 5576 元。

image-20210121202443278

3.2 企业主题

行业情况

各行业的招聘人数排行 TOP10 如下,可以看到 IT 互联网最缺人。

由于数据源的行业分类比较草率,很多公司的分类其实并不是很准确,所以这个结果仅供参考。

image-20210122101934481

公司类型

从招聘人数上来看,民营/私营的企业最缺人,事业单位的招聘人数最少。

image-20210122103541571

从薪资待遇来看,上市公司平均薪资最高 5983 元,而台资/港资则最少 4723 元。

image-20210122104008379

最缺人的公司 TOP

最缺人的公司果然是人力资源公司,总的要招聘 2000 多个人,从详情来看,大多是代招一些流水线岗位。

image-20210122105804275

image-20210122133941542

平均薪资最高的公司 TOP

平均薪资最高的公司 上海美莱投资管理有限公司 居然有 5 万多,一惊之下,查了下这家公司的招聘信息,可以看到该公司在招的都是高级岗,比如 集团片区总经理(副总裁级),这个岗位人数达到 20 人,岗位月薪 6 万,所以直接把平均薪资拉高了,而且工作地点也不在厦门。

由以上分析,可以得知根据招聘信息来推算平均工资,其实误差还是比较大的,仅供参考。

image-20210122111007571

image-20210122111324460

工作时间

从每天工作时间占比 TOP 10 来看,大部分职位是 8 小时工作制,紧接着是 7.5 小时 和 7小时。还有一些每天上班时间要达到 12 小时,主要是 保安 和 普工 这类岗位。

image-20210122142102501

每周工作天数占比来看,大部分还是 5天/周的双休制,不过 6 天/周、5.5 天/周、大小周的占比也是相当高。

image-20210122165511526

工作地点

岗位数量的分布图,颜色越深代表数量越大,可以看到思明区的工作机会最多,其次是湖里、集美、同安、海沧、翔安。

image-20210123205048473

福利词云

image-20210122140146555

3.3 岗位主题

工作经验要求

从岗位数量来看,一半以上的岗位对工作经验是没有要求的。在有经验要求的岗位里面,1-3 年工作经验的市场需求是最大的。

image-20210122145817970

从平均工资来看,符合一般认知。工作经验越多,工资也越高,10 年以上的工作经验最高,平均工资为 13666 元;应届生最低,平均工资为 4587 元。

image-20210122150102148

学历要求

从岗位数来看,大部分岗位的学历要求为大专以上,换言之,在厦门,只要大专学历,就很好找工作了。

image-20210122150543260

从平均工资来看,学历越高,工资越高,这也符合一般认知,谁说的读书无用论来着。

有趣的是,不限学历的平均工资居然排在了高中的前面,或许这是 九年义务教育的普及与大学扩招带来的内卷,在招聘方眼里,只有两大类:上过大学和没上过大学,从而导致大专以下的学历优势不再明显。

image-20210122151013456

性别要求

岗位数方面,有 6974 个岗位,明确要求性别为 女,仅有 575 个岗位要求性别为 男。

平均工资方面,女性岗位的平均工资为 5246 元,而男性则为 4454 元。

虽然绝大多数岗位都是不限制性别的,但是,不管是从岗位数量还是平均工资来看,在厦门,女性比男性似乎有更多的职场优势。

image-20210122152405709

image-20210122152256552

年龄要求

年龄要求一般有一个上限和下限,现在只考虑上限,并通过上限来分析一下,所谓 35 岁的危机。

岗位数量上来看,大多数岗位是不限制年龄的,有限制年龄的岗位里面,35 岁以后的岗位有 7327 个,35 岁及以下的岗位有 32967 个,

岗位数量上确实少了非常多。

image-20210122162411758

从平均工资来看,35 岁以后的岗位 5095 元,35岁及以下的岗位 5489 元,薪资上少了 394 元。

image-20210122162735961

所以,单单考虑岗位的年龄上限,那么 35 岁以后的市场需求确实会变少。

但是,为什么会是这样的情况呢,个人认为,有可能是 35 岁 以后的职场人士,沉淀更多,进入了更高级的职位,更稳定,所以流动性比较低,自然市场上空出来的需求也会变少了,更不用说还有一部分人变成了创业者。

语言要求

大部分岗位没有语言要求,在有语言要求的岗位里面,英语妥妥的是第一位。

值得一提的是,这边还有个闽南语,因为厦门地处闽南,本地的方言就是闽南语。

image-20210122175452253

编程语言要求

比较流行的编程语言里面,被岗位要求提到的次数排行如下 。可以看到,C 语言被提及的次数远大于其它语言,不亏是排行榜常年第一的语言。比较惊讶的是如今大火的 python 被提及的次数却很少,排在倒二。

image-20210122172459174

这些语言的平均薪资排行,Python 最高为 8732 元。

image-20210122174532901

4. 模型预测

我们知道影响工资待遇的因素有很多:学历、工作经验、年龄、招聘方的紧急程度、技能的稀缺性、行业的发展情况。。。等等。

所以,为了简化模型,就学历和工作经验两个维度进行模型训练,尝试做工资预测。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
from sklearn.linear_model import LinearRegression

def predict(data, education):
    """
    :param data: 训练数据
    :param education: 学历
    :return: 模型得分,10年工作预测
    """
    train = data[data['education'] == education].to_numpy()
    x = train[:, 1:2]
    y = train[:, 2]

    # model 训练
    model = LinearRegression()
    model.fit(x, y)

    # model 预测
    X = [[i] for i in range(11)]
    return model.score(x, y), model.predict(X)

education_list = ['小学', '初中', '中专', '高中', '大专', '本科', '硕士', '博士']
data = pd.read_csv('train.csv')

scores, values = [], []
for education in education_list:
    score, y = predict(data, education)
    scores.append(score)
    values.append(y)

result = pd.DataFrame()
result['学历'] = education_list
result['模型得分'] = scores
result['(1年经验)平均工资'] = [value[1] for value in values]
result['(3年经验)平均工资'] = [value[2] for value in values]
result['(5年经验)平均工资'] = [value[4] for value in values]
result['(10年经验)平均工资'] = [value[10] for value in values]
print(result)

使用线性回归模型分学历进行预测,预测结果如下。

image-20210123134009379

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据分析项目-数据分析岗位近况分析
对表中的position、salary_range、work_year、city、text、company_welfare字段数据进行清洗
Python研究者
2020/09/28
2K0
数据分析项目-数据分析岗位近况分析
用数据分析来看哪种 Python 程序员最赚钱?
本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取了相应的职位信息和任职要求,并通过数据分析可视化,直观地展示了这10个职位的平均薪资和学历、工作经验要求。
sergiojune
2018/10/23
9860
用数据分析来看哪种 Python 程序员最赚钱?
数据分析岗位招聘情况
win8, python3.7, pycharm, jupyter notebook
py3study
2020/01/20
1.6K0
利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?
我经常会收到读者关于一系列咨询运维方面的事情,比如:杰哥,运维到底是做什么的呀?运维的薪资水平/ 待遇怎么样呢?杰哥帮忙看下这个岗位的招聘需要对于小白来说,能否胜任的了呢?等等。
杰哥的IT之旅
2020/07/14
3620
利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?
新手向-爬取分析拉勾网招聘信息
然后在拉勾网搜索关键词 算法工程师 回车,然后点击下一页、下一页,此时开发者工具里的Network 下XHR(表示该网站是以Ajax方式获取刷新信息的)应当如下图(图中已标明了一些关键信息):
爱写bug
2019/07/05
6640
新手向-爬取分析拉勾网招聘信息
Python告诉你:这类程序员最赚钱!
都说程序员钱多靠谱话稳重,那么我们身边的程序员究竟月薪高到什么程度呢?本文将以Python爬虫、数据分析、全栈开发、运维开发、机器学习、架构师这7个岗位,从某招聘网上爬取了相应的职位信息和任职要求,并通过数据分析可视化,直观地展示了这10个职位的平均薪资和学历、工作经验要求。手把手用代码实现!
CDA数据分析师
2018/12/18
1.1K0
Python告诉你:这类程序员最赚钱!
[爬虫+数据分析] 分析北京Python开发的现状|文末送书5本
相信各位同学多多少少在拉钩上投过简历,今天突然想了解一下北京Python开发的薪资水平、招聘要求、福利待遇以及公司地理位置。既然要分析那必然是现有数据样本。本文通过爬虫和数据分析为大家展示一下北京Python开发的现状,希望能够在职业规划方面帮助到大家!!!
龙哥
2019/07/30
7390
[爬虫+数据分析] 分析北京Python开发的现状|文末送书5本
Python数据可视化:浅谈数据分析岗
讲道理,pyspider确实是一款优秀的爬虫框架,我们可以利用它快速方便地实现一个页面的抓取。
sergiojune
2018/12/24
5810
python爬虫与数据可视化书(python大数据可视化)
之前写过篇爬取前程无忧职位信息并保存到Excel的博客, 这里仔细的讲讲并且增加可视化内容
全栈程序员站长
2022/07/28
9180
python爬虫与数据可视化书(python大数据可视化)
Python爬虫之六:智联招聘进阶版
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器
王强
2018/08/09
1.2K0
Python爬虫之六:智联招聘进阶版
Python or Java?大数据解读学什么语言最赚钱
本文主要用Python爬取拉勾网不同编程语言职位信息,包括:Python岗、Java岗、C++岗、PHP岗、C#岗位(5岗);用R语言对影响薪资的因素进行分析。由于拉勾网的职位信息只显示30页,一页15个职位信息,如果单独爬取一个城市的岗位信息,只有几页是匹配的信息,信息量太小,分析没有说服力。因此,本文爬取拉勾网全国职位信息。主要三部分内容:
数据森麟
2019/09/27
5390
听说数据分析师挺火,我们来数据分析一下
经常看见各种数据分析师培训的运营推荐,那么数据分析师的就业行情究竟如何?让我们用数据说话,一探究竟!
luanhz
2020/04/01
5910
用python对拉勾网5000条招聘进行数据分析
本文由作者:sevenry 原创投稿 声明:本文所公布代码及数据仅作学习用,若别有用途则后果自行承担。 根据@种瓜从拉勾网爬下来的数据文件 爬虫部分源代码:https://github.com/wwj718/jobSpider/blob/master/lagou/spiders/lagou_spider.py python数据分析 代码: https://github.com/sevenry/my_data/upload/master/160813 利用pandas库对其进行一定的处理,用于分析全国总的
机器学习AI算法工程
2018/03/14
1.3K0
用python对拉勾网5000条招聘进行数据分析
数据分析行业招聘职位分析报告--基于拉勾网
大数据时代的到来让数据在公司决策上发挥了越来越大的作用,数据分析师也成为了各大企业的标配,那么各大企业又会愿意花多少代价来为数据买单呢?本文将通过从拉勾网爬取到的职位信息来展现「数据分析」职位究竟「钱」景如何:
Awesome_Tang
2018/09/11
1.5K0
数据分析行业招聘职位分析报告--基于拉勾网
Python 爬取前程无忧最新招聘数据 matplotlib数据分析与可视化
利用python爬取在前程无忧网搜索python关键字出现的最新的招聘数据,保存到本地Excel,进行数据查看和预处理,然后利用matplotlib进行数据分析和可视化。
叶庭云
2020/09/17
5K1
Python   爬取前程无忧最新招聘数据    matplotlib数据分析与可视化
用数据分析告诉你数据分析师能挣多少钱
随着大数据时代的到来和数据的市场价值得到认可,数据分析师、进阶一点的还有数据挖掘工程师、甚至是金字塔顶尖的数据科学家,这些作为21世纪最性感的职业已成功吸引无数像笔者这样的热血小青年,阿里的一句“开启AI时代”的口号就足以让我等激动的准备把此身奉献给高大上的数据科学行业。除去像计算机、数学和统计学这些科班出身的童鞋,想要转行投身数据分析的其他行业人士也绝不在少数。但数据分析到底是什么、想要成为一名数据行业的从业者又要具备哪些素质,恐怕这才是大家真正需要关注的焦点。笔者花了一些时间,从数据采集到清洗、分析,从可视化到数据的深度挖掘,一整套数据分析处理流程给大家展示一下目前国内关于数据行业的招聘信息到底有些什么。
IT阅读排行榜
2018/08/16
5780
用数据分析告诉你数据分析师能挣多少钱
Python爬虫:爬取拉勾网职位并分析
本文从拉勾网爬取深圳市数据分析的职位信息,并以CSV格式保存至电脑,之后进行数据清洗,生成词云,进行描述统计和回归分析,最终得出结论。
数据科学社区
2018/07/30
1.6K0
Python爬虫:爬取拉勾网职位并分析
数据导入与预处理-第8章-实战演练-数据分析师岗位分析
本案例数据为招聘网站上收集的有关数据分析师岗位的数据,对该数据集从数据分析的角度出发,利用pandas、pyecharts库处理与展现数据,开发一个完整的数据分析项目。
用户2225445
2022/11/12
1.1K0
数据导入与预处理-第8章-实战演练-数据分析师岗位分析
boss直聘网数据分析项目
这次准备爬取boss直聘网的招聘信息,然后分析互联网发展排名前十的城市在互联网方面职位的薪水,学历要求,经验要求,等等信息。 准备从以下几个方面进行分析:
润森
2022/12/20
1.1K0
boss直聘网数据分析项目
拉勾网上海Java开发等岗位的简单数据分析
最近两天终于闲来写写之前的Python代码,好久没做,手有点生,编程这个活就是这样,得需要经常写,不然认生。今天的主题比较随意,任务就是爬取拉勾网的数据并且做简要的数据分析,本文直接给出我的个人分析结论,存在比较片面的情况。感谢@某某给的提供的初始代码,我给忘了谁了,加我的人太多,发的消息我可能没看见,可以在给我发一次,两次我没回复,那就是这个问题我回答不了,或者说百度很轻松能回答你。废话少说,直奔主题。
马拉松程序员
2022/04/26
6010
拉勾网上海Java开发等岗位的简单数据分析
推荐阅读
相关推荐
数据分析项目-数据分析岗位近况分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验