学习笔记:招聘数据探索与分析

入门小菜鸟的学习笔记,希望大佬们帮忙纠错啦~侵权立删。 

1. 读取数据并存为一个名叫job_info的数据框

import pandas as pd
job_info = pd.read_csv('../job_info.csv',encoding='gbk',header=None)
job_info.head(3)

2. 简单的数据探索

job_info.shape
job_info.isnull().sum()
job_info.describe()
job_info.head()
job_info.columns

3. 将列命名为:['公司', '岗位', '工作地点', '工资', '发布日期']

job_info.columns=['公司', '岗位', '工作地点', '工资', '发布日期']
job_info

4. 哪个岗位招聘需求最多

job_info['岗位'].value_counts().idxmax()

5. 取出9月3日发布的招聘信息

#方法一
job_info.loc[job_info['发布日期']=='09-03',:]
#方法二
job_info[job_info['发布日期']=='09-03']

6. 处理工作地点这一列,保留数据中省份或直辖市信息

job_info['工作地点'].value_counts()
job_info[job_info['工作地点'] == '异地招聘'] = ''

def area_solve(x):
    '''
    该函数实现提取输入x中的省份或者市的字符 
    param x:字符串
    return 提取省份或者市字符的x:字符串 
    '''
    if '-' in x: # 判断“-”是否在x中,如果有返回True,如果没有返回False
        return x.split('-')[0]
    else:
        return x
job_info['工作地点'] = job_info['工作地点'].apply(area_solve)

7. 找出工作地点在深圳、广州、北京、上海的数据分析师招聘信息

index_1 = job_info['工作地点'].str.contains('深圳|广州|北京|上海')
index_2 = job_info['岗位']=='数据分析师'
job_info[index_1 & index_2]

8.取出每个岗位的最低工资与最高工资,单位为“元/月”,若招聘信息中无工资数据则无需处理

# (如2-2.5万/月,则最低工资为20000,最高工资为25000。)
job_info['工资'].str[-3:].value_counts()
'''
千/月:x*1000
万/月:x*10000
万/年:x*10000/12
其他:None
'''
# 正则表达式
# \d:匹配0-9的字符
# *:匹配前一个字符0到多次
# ?:匹配前一个字符0到1次
# \:转义字符
import re
# 以一个工资为例实现字符提取以及单位转换
s = job_info['工资'][0]
float(re.findall('\d\.?\d*',s)[0]) * 10000

def get_salary(x):
    '''
    该函数实现对输入x进行字符提取和单位转换 
    param x:字符串,例如“2-3.5万/月”
    return (最低工资,最高工资),例如:(20000,35000)
    '''
    try: # 数据中存在空的字符串以及其他单位的工资
        if x[-3]=='万':
            a = [float(i)*10000 for i in re.findall('\d\.?\d*',x)]
        elif x[-3]=='千':
            a = [float(i)*1000 for i in re.findall('\d\.?\d*',x)]
        # 到这里,此时工资的单位为元/月,元/年
        if x[-1]=='年':
            a = [a/12 for i in a]
        return a
    except:
        return None

job_info['最低工资'] = job_info['工资'].apply(get_salary).str[0] # 提取列表中第一个元素
job_info['最高工资'] = job_info['工资'].apply(get_salary).str[1] # 提取列表中第二个元素

9.新增一列薪资等级,把工资分为三个等级(‘高薪’,‘中等薪资’,‘低薪’),划分依据自定

job_info['最低工资'].value_counts() # 低薪:4000以下,中等薪资:4000-10000,高薪;10000以上
job_info['薪资等级'] = pd.cut(job_info['最低工资'],[0,4000,10000,job_info['最低工资'].max()],labels=['低薪','中等薪资','高薪'])
job_info['薪资等级'].value_counts()

10.把处理里后的数据保存到本地路径中,文件命名为job_data(处理后).csv

job_info.to_csv('./练习代码/数据/job_info(处理后).csv',index=False)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值