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

一、统一薪资格式


1

2

3

薪资的类型一共有6种,把薪资统一到千/月,对薪资是一个范围的数据分开放入2列(low_salary,high_salary),薪资只有一个值的放入low_salary

主要代码内容如下:

def Salary(path,table):
    workbook = load_workbook(path)
    sheet = workbook[table]
    n = sheet.max_row
    
    a = Fraction(10,12)#万/年换算成千/月 先乘10再除以12
    b = Fraction(20,1000)#每月工作20天

    #6种薪资类型
    k1 = "万/月"
    k2 = "千/月"
    k3 = "万/年"
    k4 = "元/天"
    k5 = "千以下/月"
    k6 = "万以下/年"

    salarydic1 = {k1:10,k2:1,k3:a}#处理有“-”的数据
    salarydic2 = {k4:b,k5:1,k6:a}#处理无“-”的数据
    
    sheet.cell(1,2).value = "low_salary"
    sheet.cell(1,3).value = "high_salary"
    
    for i in range(2,n+1):
        s = sheet.cell(i,1).value
        if s:
            if "-" in s:
                for k in salarydic1:
                    if k in s:
                        slist = s.split("-")
                        low_salary = float(slist[0])*salarydic1[k]
                        high_salary = float(slist[1].replace(k,""))*salarydic1[k]
                        #print(round(low_salary,2),round(high_salary,2))
                        sheet.cell(i,2).value = round(low_salary,2)
                        sheet.cell(i,3).value = round(high_salary,2)
            else:
                for k in salarydic2:
                    if k in s:
                        low_salary = float(s.replace(k,""))*salarydic2[k]
                        #print(round(low_salary,2))
                        sheet.cell(i,2).value = round(low_salary,2)
    workbook.save(path)
薪资处理结果

二、简化所在行业,取第一个逗号前的文本


行业显示

主要代码内容如下:

def Companyfield(path,table):
    workbook = load_workbook(path)
    sheet = workbook[table]
    n = sheet.max_row
    
    sheet.cell(1,3).value = "new companyfield"
    for i in range(2,n+1):
        s = sheet.cell(i,2).value
        if s:
            if "," in s:
                s = s.split(",")[0]
            else:
                s = s
            sheet.cell(i,3).value = s
    workbook.save(path)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,803评论 0 10
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 1 没有爱情的婚姻,会有多可怕? 苏小晴挂了电话,她已经很久没见过那个暂时还是自己丈夫的男人,朱峰。有多久了,三年...
    南歌子吟阅读 848评论 5 9
  • 六子五维阅读课第一课(5.11~5.17) 三次作业目标: 1、找到自己未来半年的学习方向 2、学会换维阅读和主题...
    timespace阅读 231评论 0 3
  • 银龙 得过且过 得过且过 得过且过 直到 曲子再次被吹起 心跳有了象征意义
    醉仙王子阅读 246评论 0 0