我的第一个数据分析项目——51job“数据分析”岗位分析(数据清洗篇二)

一、工作经验字段完善
虽然概要描述中显示无工作经验,但实际职位描述中仍旧要求工作经验,因此要把职位描述中的内容取出来更新到工作经验这一列。


网页数据显示
excel数据显示

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 12 13:05:27 2018

@author: shirley
"""
from openpyxl import load_workbook
import re

path = "D:/anaconda/shirleylearn/51job/test.xlsx"
workbook = load_workbook(path)
sheet = workbook["Sheet1"]
n = sheet.max_row#获取行数
#print(n)

dic = {"1年经验":".*?((1|一)年.*?经(验|历))","2年经验":".*?((2|两|二)年.*?经(验|历))","3-4年经验":".*?((3|三|4|四)年.*?经(验|历))","5-7年经验":".*?((5|6|7|五|六|七)年.*?经(验|历))","8-9年经验":".*?((8|9|八|九)年.*?经(验|历))","10年以上经验":".*?((^[1-9]\d|十.|二十.|三十.)年.*?经(验|历))"}
for i in range(2,n+1):

    if sheet.cell(i,13).value == "无工作经验":
        s = sheet.cell(i,9).value.replace("_x000D_","").replace("\n","")
        #print(s,"\n")
        for k in dic:  
            match = re.match(dic[k],s)
            if match:
                sheet.cell(i,13).value = k
workbook.save(path)

短短几个正则修改了快一天,而且仍旧不够完善,只是大部分能够处理。基础薄弱o(╥﹏╥)o

修改前“无工作经验”的数据有3460条,代码处理后“无工作经验”的数据有2400条,完善了1000条数据

二、学历字段完善


学历显示情况

同理,完善 学历 数据,处理前学历为空的数据有1600条,处理后剩余607条空数据,完善了1000条左右数据

修改学历代码如下:

def Degree(path):
    workbook = load_workbook(path)
    sheet = workbook["Sheet1"]
    n = sheet.max_row#获取行数

    dic = {"博士":".*?(博士.*?学历)","硕士":".*?(硕士.*?学历)","本科":".*?((本科|大本).*?学历)","大专":".*?((大专|专科).*?学历)","高中":".*?(高中.*?学历)"}
    #学历从高到低排列,匹配的是最低学历
    for i in range(2,n+1):
        if not sheet.cell(i,14).value:#如果单元格为空(NONE)
            s = sheet.cell(i,9).value.replace("_x000D_","").replace("\n","")
            #print(s,"\n")
            for k in dic:  
                match = re.match(dic[k],s)
                #print(match)
                if match:
                    sheet.cell(i,14).value = k
    workbook.save(path)

你可能感兴趣的:(我的第一个数据分析项目——51job“数据分析”岗位分析(数据清洗篇二))