数据清洗及简单分析

做~自己de王妃 提交于 2019-11-26 09:48:41

数据分析案例分享,仅供学习使用,数据量比较少,数据源为拉钩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()

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!