python对excel数据清洗_python数据清洗excel-阿里云开发者社区
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-阿里云开发者社区相关推荐
- python string模块安装_python String模块-阿里云开发者社区
string成员常量: ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPQRSTUVWXYZ' ascii_lowercase ...
- python的日期格式化_Python日期格式化-阿里云开发者社区
Python日期格式化常用的一些格式化占位符 %a Abbreviated weekday name %A Full weekday name %b Abbreviated month name %B ...
- python图形用户界面形式_Python图形用户界面-阿里云开发者社区
tkinter是Python中可用于构建GUI的众多工具集之一. tkinter模块 # 可以使用import tkinter as tk并通过tk.thing去引用其中的内容 from tkinte ...
- python链表划分_《Python自然语言处理》——1.2 近观Python:将文本当做词链表-阿里云开发者社区...
本节书摘来自异步社区<Python自然语言处理>一书中的第1章,第1.2节,作者[美]Steven Bird,Ewan Klein,Edward Loper, 陈涛,张旭,崔杨,刘海平 译 ...
- python es 数据库 复合查询bool_es 入门-阿里云开发者社区
**注意事项-------使用ealsticsearch要配置java的开发环境JDK(1.8以上) ealsticsearch: 索引(Index) 类型(type ...
- python数据科学实践指南_《Python数据科学实践指南》——导读-阿里云开发者社区...
前 言 为什么要写这本书 我接触大数据技术的时间算是比较早的,四五年前当大数据这个词火遍互联网的时候,我就已经在实验室里学习编程及算法的知识.那个时候我一心想要做学术,每天阅读大量的英文文献,主要兴趣 ...
- python多线程原理_代码详解Python多线程、多进程、协程-阿里云开发者社区
云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一.前言 很多时候我们写了一个爬虫,实现了需求后会发现了很多值得改进的地方,其中很重要的一点就是爬 ...
- python和pythonamd64_python amd64什么意思-问答-阿里云开发者社区-阿里云
AMD64,或"x64",是一种64位元的电脑处理器架构.它是基于现有32位元的x86架构,由AMD公司所开发,应用AMD64指令集的自家产品有Athlon(速龙) 64.Athl ...
- a记录 mysql_[a]-和[a]相关的内容-阿里云开发者社区
HDOJ 1202 The calculation of GPA Problem Description 每学期的期末,大家都会忙于计算自己的平均成绩,这个成绩对于评奖学金是直接有关的.国外大学都是计 ...
- 杭州内推 | 阿里云开发者社区招聘计算机视觉算法工程师(2022年毕业生)
合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 阿里云 阿里巴巴集团拥有海量的图像/视频数据,强大的计算能力和巨大的市场空 ...
最新文章
- element表格多列排序_Excel表格在工作中的经典用法,建议收藏!
- 信息系统项目管理师-信息系统项目管理基础核心知识点思维脑图
- 开始→运行→输入的命令集锦 1
- 利用python自带的包可以建立简单的web服务器
- C++字符串的不同存放类型 (string/char[])
- 如何对memcache的数据(key-value)进行遍历操作
- 金属热处理行业调研报告 - 市场现状分析与发展前景预测
- 配置IP Phone在CUCME路由器上注册
- 内网穿透软件NPS--客户端NPC SDK交叉编译ARM64位库
- 用Excel做简单的数据分析
- Linux磁盘16进制编辑,Tweak
- pyhon身份证验证
- java web 徐林林_零点起飞学Java Web开发 (徐林林) 高清PDF
- C++虚函数、多继承和虚基类学习心得 内存布局
- 华为sug 6000 系列防火墙端口范围映射
- 2010.12.29(2)——— android GridView
- 贪心算法训练(七)——加工生产调度(流水作业调度问题)
- krc 编辑 linux,KRC 文件扩展名: 它是什么以及如何打开它?
- Android 刻度尺的另类实现方式.
- 软件定义网络(SDN)为网络交换机厂商带来商机