利用pandas对excel文件进行初步清洗

1.导库
import numpy as np
import pandas as pd
import os

import numpy as npimport pandas as pdimport os

2.读文件
job_data=pd.read_excel(‘原始数据.xls’)
在这里插入图片描述

3.查看缺失值并进行处理
#查看缺失值
job_data.isnull().sum()
在这里插入图片描述在这里插入图片描述

城市的缺失值可以通过公司全名来获取到以填补缺失值
data0=job_data[job_data[‘城市’].isnull()]
a=job_data[‘城市’].isnull()
job_data.loc[a,‘城市’]=job_data[job_data[‘城市’].isnull()][‘公司全名’].str[:2]
在这里插入图片描述在这里插入图片描述

4.数据不统一
#统一分隔符
#处理公司大小 字段
job_data[‘公司大小’]=job_data[‘公司大小’].str.replace(‘人’,’ ‘).str.replace(‘以上’,’ ‘).str.replace(‘少于’,’ ')

#统一职位所属分隔符
job_data['职位所属 ']=job_data[‘职位所属 ‘].str.replace(‘与’,’/’)

#统一职位福利分隔符
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’,’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’+’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’-’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(‘与’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’、’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’;’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’.’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’,’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’ ‘,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’;’,’/’)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’【’,’ ‘)
job_data[‘职位福利’]=job_data[‘职位福利’].str.replace(’】’,’ ')

统一公司所属领域分隔符

job_data[‘公司所属领域 ‘]=job_data[‘公司所属领域 ‘].str.replace(’,’,’/’)
job_data[‘公司所属领域 ‘]=job_data[‘公司所属领域 ‘].str.replace(’、’,’/’)

#处理公司所在商区列
job_data[‘公司所在商区’]=job_data[‘公司所在商区’].str.replace(’[’,’’).str.replace(’]’,’’)
job_data[‘公司所在商区’]=job_data[‘公司所在商区’].str.replace("’", ‘’)

#薪水把单位去掉
job_data[‘薪水’]=job_data[‘薪水’].str.replace(‘k’,‘000’)
job_data
在这里插入图片描述

5.分列

处理职位所属分列

d=job_data[‘职位所属 ‘].str.split(’/’,expand=True)
d

job_data[‘职位所属1’]=d[0]
job_data[‘职位所属2’]=d[1]
job_data[‘职位所属3’]=d[2]

#公司商区分列
f=job_data[‘职位福利’].str.split(’/’,expand=True)
job_data[‘职位福利1’]=f[0]
job_data[‘职位福利2’]=f[1]
job_data[‘职位福利3’]=f[2]
job_data[‘职位福利4’]=f[3]
job_data[‘职位福利5’]=f[4]
job_data[‘职位福利6’]=f[5]

#公司大小分列
b=job_data[‘公司大小’].str.split(’-’,expand=True)
job_data[‘最少人数’]=b[0]
job_data[‘最多人数’]=b[1]

#薪水分列
c=job_data[‘薪水’].str.split(’-’,expand=True)
job_data[‘最少薪水’]=c[0]
job_data[‘最多薪水’]=c[1]

#公司商区分列
e=job_data[‘公司所在商区’].str.split(’,’,expand=True)
job_data[‘公司所在商区1’]=e[0]
job_data[‘公司所在商区2’]=e[1]
job_data[‘公司所在商区3’]=e[2]
job_data[‘公司所在商区4’]=e[3]
job_data[‘公司所在商区5’]=e[4]
job_data[‘公司所在商区6’]=e[5]

#处理公司所属领域
f=job_data[‘公司所属领域 ‘].str.split(’/’,expand=True)
f
job_data[‘公司所属领域1’]=e[0]
job_data[‘公司所属领域1’]=e[1]
在这里插入图片描述
在这里插入图片描述
上图不完整,过会存excel文件查看
6.去除重复值
job_data.drop_duplicates([‘职位ID’],inplace=True)
job_data.drop_duplicates([‘公司ID’],inplace=True)

在这里插入图片描述

7.填充所有的空缺值
job_data.fillna(’-’)
在这里插入图片描述

8.将数据存为excel表格
job_data.to_excel(r"E:\大三\数据清洗\数据清洗作业\数据清理\JMX招聘网站清洗.xls")
在这里插入图片描述
Excel截图
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值