入门小菜鸟的学习笔记,希望大佬们帮忙纠错啦~侵权立删。
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)