数据分析案例分享,仅供学习使用,数据量比较少,数据源为拉钩7月8日,广州片区、数据分析岗位,就是这么少,没错。)
需求
对爬取的数据进行清洗,通过python进一步分析。
工具
python3、pycharm
数据清洗
先分析下目标文件
共172条数据,
需要处理
工作经验:不限设置为0,例:1-3年 取(1+3)/2即1.5年
工资:按实际情况区间前25%比较合理,例:10K-15K,取11.25K
职位内容包含了实习生的数据,参考意义较少,也要去掉。
import pandas as pd
df = pd.read_csv('lagou8.4jobs.csv',encoding='utf-8-sig')
#print(df.describe())
#共175条信息,其中包含了实习信息需要清洗掉
df.drop(df[df['职位名称'].str.contains('实习')].index,inplace=True)
#print(df.describe())
#67条
pattern = '\d+' #正则表达式 获取所有数字
df['工作经验'] = df['工作经验'].str.findall(pattern)
#print(df['工作经验'])
avg_work_year = []
for i in df['工作经验']:
if len(i) == 0:
avg_work_year.append(0)
else:
num = [int(j) for j in i]
avg = sum(num)/2
avg_work_year.append(avg)
#print(avg_work_year)
df['工作经验'] = avg_work_year
df['工资'] = df['工资'].str.findall(pattern)
#print(df['工资'])
avg_salary = []
for i in df['工资']:
num = [int(j) for j in i]
#print(num)
avg = num[0]+(num[1]-num[0])/4
#print(avg)
avg_salary.append(avg)
df['工资'] = avg_salary
df.to_csv('clear_data.csv', index = False,encoding='utf-8-sig')
清洗结束
数据分析
1、数据基本信息
print(df.describe())
合计165条数据
工作经验要求平均是3年
平均薪资水平达13K
标准差:2.28
2、公司招聘信息个数
下面是pandas的简单运用,为方便理解代码写得有点长
import pandas as pd
df = pd.read_csv(r'D:\python\xiangmu\lagou\lagou8.7.csv',encoding='utf-8-sig')
compant_data = df.groupby('公司全名',as_index=False) #分组
compant_data =compant_data.count()[['公司全名','职位名称']] #提取个数
compant_data =compant_data.sort_values('职位名称', ascending=False) #排序
print(compant_data.head(10)) #前十家公司
输出结果
3、直方图
工资分布直方图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.hist(df['工资'])
plt.title('工资分布图')
plt.xlabel('工资')
plt.ylabel('人数')
plt.show()