python清洗excel的数据还是很简单的

这里就列举例子说一下

这是原始数据,这里要处理的是地区和薪水两个字段。

清洗前数据

import xlrd

import codecs

import re

def get_salary(salary):

# 利用正则表达式提取月薪,把待遇规范成千/月的形式

# 返回最低工资,最高工资的形式

if '-' in salary: # 针对1-2万/月或者10-20万/年的情况,包含-

low_salary = re.findall(re.compile('(\d*\.?\d+)'), salary)[0]

high_salary = re.findall(re.compile('(\d?\.?\d+)'), salary)[1]

if u'万' in salary and u'年' in salary: # 单位统一成千/月的形式

low_salary = float(low_salary) / 12 * 10

high_salary = float(high_salary) / 12 * 10

elif u'万' in salary and u'月' in salary:

low_salary = float(low_salary) * 10

high_salary = float(high_salary) * 10

else: # 针对20万以上/年和100元/天这种情况,不包含-,取最低工资,没有最高工资

low_salary = re.findall(re.compile('(\d*\.?\d+)'), salary)[0]

high_salary = ""

if u'万' in salary and u'年' in salary: # 单位统一成千/月的形式

low_salary = float(low_salary) / 12 * 10

elif u'万' in salary and u'月' in salary:

low_salary = float(low_salary) * 10

elif u'元' in salary and u'天' in salary:

low_salary = float(low_salary) / 1000 * 21 # 每月工作日21天

return low_salary, high_salary

def open_xlsx(file):

# 加载Excel数据,获得工作表和行数

data = xlrd.open_workbook(file) #读取工作表名称

table0 = data.sheet_by_name('51') #读取 当前sheet表

nrows = table0.nrows # 获取行数

return table0, nrows

def main():

table, nrows = open_xlsx('512.xlsx') # 调用打开excel的函数

print('一共有{}行数据,开始清洗数据'.format(nrows))

for i in range(1, nrows):

job = table.row_values(i)[0]

company = table.row_values(i)[1]

companytype = table.row_values(i)[2]

area = table.row_values(i)[3][:2] # 地区取到城市,把区域去掉

if area:

area_list.append(area)

experience = table.row_values(i)[4]

degree = table.row_values(i)[5]

salary = table.row_values(i)[6]

if salary: # 如果待遇这栏不为空,计算最低最高待遇

getsalary = get_salary(salary)

low_salary = getsalary[0]

high_salary = getsalary[1]

else:

low_salary = high_salary = ""

print('正在写入第{}条,最低工资是{}k,最高工资是{}k'.format(i, low_salary, high_salary))

output = ('{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\n').format(job, company, companytype, area,

experience,degree, low_salary, high_salary

)

f = codecs.open('51jobanaly.xls', 'a+')

f.write(output)

f.close()

if __name__ == '__main__':

main()

主要把薪资处理成以千/月为单位。保留城市。

处理后的数据:

处理后的数据

python对excel数据清洗_python数据清洗excel-阿里云开发者社区相关推荐

  1. python string模块安装_python String模块-阿里云开发者社区

    string成员常量: ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPQRSTUVWXYZ' ascii_lowercase  ...

  2. python的日期格式化_Python日期格式化-阿里云开发者社区

    Python日期格式化常用的一些格式化占位符 %a Abbreviated weekday name %A Full weekday name %b Abbreviated month name %B ...

  3. python图形用户界面形式_Python图形用户界面-阿里云开发者社区

    tkinter是Python中可用于构建GUI的众多工具集之一. tkinter模块 # 可以使用import tkinter as tk并通过tk.thing去引用其中的内容 from tkinte ...

  4. python链表划分_《Python自然语言处理》——1.2 近观Python:将文本当做词链表-阿里云开发者社区...

    本节书摘来自异步社区<Python自然语言处理>一书中的第1章,第1.2节,作者[美]Steven Bird,Ewan Klein,Edward Loper, 陈涛,张旭,崔杨,刘海平 译 ...

  5. python es 数据库 复合查询bool_es 入门-阿里云开发者社区

    **注意事项-------使用ealsticsearch要配置java的开发环境JDK(1.8以上) ealsticsearch:               索引(Index)    类型(type ...

  6. python数据科学实践指南_《Python数据科学实践指南》——导读-阿里云开发者社区...

    前 言 为什么要写这本书 我接触大数据技术的时间算是比较早的,四五年前当大数据这个词火遍互联网的时候,我就已经在实验室里学习编程及算法的知识.那个时候我一心想要做学术,每天阅读大量的英文文献,主要兴趣 ...

  7. python多线程原理_代码详解Python多线程、多进程、协程-阿里云开发者社区

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一.前言 很多时候我们写了一个爬虫,实现了需求后会发现了很多值得改进的地方,其中很重要的一点就是爬 ...

  8. python和pythonamd64_python amd64什么意思-问答-阿里云开发者社区-阿里云

    AMD64,或"x64",是一种64位元的电脑处理器架构.它是基于现有32位元的x86架构,由AMD公司所开发,应用AMD64指令集的自家产品有Athlon(速龙) 64.Athl ...

  9. a记录 mysql_[a]-和[a]相关的内容-阿里云开发者社区

    HDOJ 1202 The calculation of GPA Problem Description 每学期的期末,大家都会忙于计算自己的平均成绩,这个成绩对于评奖学金是直接有关的.国外大学都是计 ...

  10. 杭州内推 | 阿里云开发者社区招聘计算机视觉算法工程师(2022年毕业生)

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 阿里云 阿里巴巴集团拥有海量的图像/视频数据,强大的计算能力和巨大的市场空 ...

最新文章

  1. element表格多列排序_Excel表格在工作中的经典用法,建议收藏!
  2. 信息系统项目管理师-信息系统项目管理基础核心知识点思维脑图
  3. 开始→运行→输入的命令集锦 1
  4. 利用python自带的包可以建立简单的web服务器
  5. C++字符串的不同存放类型 (string/char[])
  6. 如何对memcache的数据(key-value)进行遍历操作
  7. 金属热处理行业调研报告 - 市场现状分析与发展前景预测
  8. 配置IP Phone在CUCME路由器上注册
  9. 内网穿透软件NPS--客户端NPC SDK交叉编译ARM64位库
  10. 用Excel做简单的数据分析
  11. Linux磁盘16进制编辑,Tweak
  12. pyhon身份证验证
  13. java web 徐林林_零点起飞学Java Web开发 (徐林林) 高清PDF
  14. C++虚函数、多继承和虚基类学习心得 内存布局
  15. 华为sug 6000 系列防火墙端口范围映射
  16. 2010.12.29(2)——— android GridView
  17. 贪心算法训练(七)——加工生产调度(流水作业调度问题)
  18. krc 编辑 linux,KRC 文件扩展名: 它是什么以及如何打开它?
  19. Android 刻度尺的另类实现方式.
  20. 软件定义网络(SDN)为网络交换机厂商带来商机

热门文章

  1. 未来3年,非常赚钱的6个行业,将又会造就一批百万富翁!
  2. 深度学习入门(一),从Keras开始
  3. Pikachu靶场笔记
  4. Python 单下划线开头、双下划线开头
  5. 【nodejs】脚手架从零开始搭建JBD
  6. 万万没想到,iPhone手机拍照也能自带水印,再也不用羡慕安卓了
  7. CUDA7.5安装和vs2013配置
  8. 如何将Burpsuite的intruder的payload导出来,几句python就可以
  9. 江波龙FORESEE 推出新一代UFS 3.1旗舰级高速闪存,移动性能实现飞跃
  10. Discuz后台页面开发