python数据清洗excel

简介: python清洗excel的数据还是很简单的这里就列举例子说一下这是原始数据,这里要处理的是地区和薪水两个字段。清洗前数据import xlrdimport codecsimport redef get_salary(sal...

python清洗excel的数据还是很简单的
这里就列举例子说一下
这是原始数据,这里要处理的是地区和薪水两个字段。


img_a074d628935a23dd5eaa19ac51670814.png
清洗前数据
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()

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


img_59e648680a0be9195f823d8149140e62.png
处理后的数据
目录
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
106 10
|
2天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
10天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
125 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
数据采集 数据挖掘 数据格式
使用Python进行数据清洗的实用指南
在数据分析的世界里,"垃圾进,垃圾出"这句老话再贴切不过。数据清洗作为数据分析前的关键步骤,直接影响着分析结果的准确性与可靠性。本文将通过浅显易懂的语言和实际代码示例,带你掌握如何使用Python及其强大的库进行数据清洗,从缺失值处理到异常值检测,再到数据格式转换和重复数据删除,让你的数据准备工作变得既高效又专业。
97 2
|
2月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
64 3
|
3月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
30天前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
40 0
|
2月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
38 1