首页 > 其他分享 >Excel数据清洗工具:提高数据处理效率的利器

Excel数据清洗工具:提高数据处理效率的利器

时间:2024-09-11 09:25:02浏览次数:11  
标签:文件 处理 Excel 利器 文件夹 数据处理 main 数据 缺失

Excel数据清洗工具:提高数据处理效率的利器

引言

在当今的数据驱动时代,数据的质量直接影响着分析结果的可靠性和有效性。然而,在实际工作中,我们常常会遇到数据中的各种问题,如重复记录、缺失值、格式不一致等。为了解决这些问题,一款名为“Excel数据清洗工具”的应用程序应运而生,它不仅简化了数据清洗的过程,还极大地提升了工作效率。

1、介绍

1.1 什么是Excel数据清洗工具?

Excel数据清洗工具是一款专为Excel文件设计的数据处理软件。它可以有效地帮助用户完成一系列的数据清洗任务,如删除重复值、处理缺失值、格式化数据等。无论是单个文件还是整个文件夹中的多个文件,这款工具都能够轻松应对。

1.2 为什么选择Excel数据清洗工具?

功能强大
  • 删除重复值:重复数据不仅浪费存储空间,还会导致统计结果失真。该工具可以一键删除所有列完全相同的重复记录,确保数据的唯一性。
  • 处理缺失值:缺失值是数据清洗中的常见问题。该工具支持填充或删除缺失值,甚至可以根据用户的需求自定义填充值。
  • 格式化数据:对于日期和数值等数据类型,统一格式是进行后续分析的前提。工具提供了日期数据和数值数据的格式化功能。
  • 去除空格和非打印字符:文本数据中的多余空格或非打印字符可能会影响数据的正确性,该功能可以有效清理这些字符。
  • 数据验证:确保数据满足一定的约束条件,如数值范围等,从而保证数据的有效性。
操作简便

该工具提供了直观的用户界面,支持“单个文件”和“文件夹”两种模式。用户可以根据需要选择处理单个文件或是批量处理整个文件夹中的所有Excel文件。

文件夹模式下的数据合并功能

在文件夹模式下,除了基本的数据清洗功能外,还有一个非常实用的功能——数据合并。它能够将处理后的多个Excel文件合并成一个文件,便于后续的数据汇总和分析。

1.3 如何使用Excel数据清洗工具?

  1. 选择模式:首先,根据需要选择“单个文件”或“文件夹”模式。
  2. 上传文件或输入路径:如果是单个文件模式,通过点击上传按钮选择待处理的文件;如果是文件夹模式,则输入文件夹的路径。
  3. 勾选所需功能:根据数据的具体情况,勾选需要进行的操作,如删除重复值、处理缺失值等。
  4. 点击处理按钮:最后,点击相应的处理按钮,工具将自动执行所选功能,并在完成后显示处理后的文件保存位置和前10行预览。

1.4 总结

Excel数据清洗工具以其强大的功能和简便的操作,成为了数据分析师和业务人员的理想选择。无论是日常的数据清洗工作,还是大规模的数据整理任务,这款工具都能够帮助用户轻松应对。通过使用该工具,不仅可以提高工作效率,还能确保数据的一致性和准确性,为后续的数据分析打下坚实的基础。

2、使用实例

为了方便使用,下面列举了一些具体的示例,帮助更好地理解和操作。

  • 现存在一文件夹,内有3个excel文件,类型相同

在这里插入图片描述

  • 1.xlsx和2.xlsx内容如下

在这里插入图片描述
在这里插入图片描述

2.1 模式选择

  • excel数据清洗工具有两个模式可以选择:[“单个文件”, “文件夹”]
    • 单个文件:通过选择单个文件,选择对应的处理方法进行处理
    • 文件夹:通过输入文件夹路径,选择对应的处理方法对整个文件夹内的xlsx文件进行处理,文件夹模式下多一种数据合并功能:将多个 Excel 文件合并成一个。

在这里插入图片描述

  • 单个文件上传:通过点击对应的上传按钮即可选择待处理文件

在这里插入图片描述

  • 文件夹:通过输入对应的文件夹所在路径即可对整个文件夹内的xlsx文件进行处理

在这里插入图片描述

2.2 删除重复值

  • 删除重复值是数据清洗中最常见的任务之一。重复数据可能会导致统计结果失真。
    • 勾选是否删除重复值,确定开启删除重复值功能,其余功能不开启,点击单文件处理按钮;
    • 注意:删除重复值会考虑所有列都相同的才会删除
    • 处理后会显示文件保存位置和处理后文件的前10行预览,很明显最后一行重复的数据已删除
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2.3 处理缺失值

  • 缺失值会导致数据不完整,需要对其进行填充或删除。
    • 该功能需要填写3个参数:
      • 列表名称:要处理缺失值的列名或列名列表。如果为None,则处理所有列。
      • 缺失值处理的方法:可以是 ‘填充缺失值’ 或 ‘删除缺失值所在行’。默认为 ‘填充缺失值’。
      • 填充缺失值:当 缺失值处理的方法 为 ‘填充缺失值’ 时,用来填充缺失值的值。默认为 ‘N/A’。
    • 勾选是否处理缺失值,确定开启处理缺失值功能,其余功能不开启,点击单文件处理按钮;
    • 处理后会显示文件保存位置和处理后文件的前10行预览,处理结果如图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 格式化数据

  • 数据格式不一致会影响后续的数据分析。格式化数据包括日期、数值等。
    • 该功能需要填写2个参数:
      • 列表类型:可以是‘日期数据格式化‘ 或 ’数值数据格式化’ 默认为 日期数据格式化
      • 列表名称:要处理缺失值的列名或列名列表。不能为None。
    • 勾选是否格式化数据,确定开启格式化数据功能,其余功能不开启,点击单文件处理按钮;
    • 处理后会显示文件保存位置和处理后文件的前10行预览,处理结果如图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 去除空格和非打印字符

  • 文本数据中多余的空格或非打印字符会影响数据的正确性。
    • 该功能需要填写1个参数:
      • 列表名称:要处理缺失值的列名或列名列表。如果没有指定列,则获取 DataFrame 中对象类型(如字符串)的列。
    • 勾选是否去除空格和非打印字符,确定开启去除空格和非打印字符功能,其余功能不开启,点击单文件处理按钮;
    • 处理后会显示文件保存位置和处理后文件的前10行预览,处理结果如图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 数据验证

  • 确保数据满足一定的约束条件,如数值范围等。
    • 该功能需要填写3个参数:
      • 列表名称:要处理缺失值的列名或列名列表。不能没有列名。
      • 列中的最小允许值
      • 列中的最大允许值
    • 勾选是否数据验证,确定开启数据验证功能,其余功能不开启,点击单文件处理按钮;
    • 处理后会显示文件保存位置和处理后文件的前10行预览,处理结果如图(将不满足约束条件的行删除)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.7 单文件多功能处理

  • 开启全部功能,点击单文件处理按钮;
  • 处理后会显示文件保存位置和处理后文件的前10行预览,处理结果如图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.8 文件夹多功能处理

  • 开启全部功能,点击多文件处理按钮;
  • 数据合并
    • 将多个 Excel 文件合并成一个。
      • 文件夹模式下的特有功能。
      • 对文件夹下所有处理后的excel文件进行合并,如果只想合并文件,可以不选择其他功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • cleanmerge文件夹内如下所示
    在这里插入图片描述
    在这里插入图片描述

3、生成可执行文件

3.1 生成已安装库文件

确保你的环境中已经安装了所有必要的库: 确保你在开发环境中安装了所有应用程序运行所需的库,包括 Streamlit 和任何其他第三方库。 通过 pip freeze > requirements.txt 命令生成一个包含所有已安装库及其版本号的文件。

3.2 安装pyinstaller

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

3.3 打包

打包 Python 应用程序
  • PyInstaller 会自动处理大多数依赖关系,并将它们打包到最终的可执行文件中。
  • –onefile 选项表示将所有依赖项合并到一个单一的可执行文件中;
  • –windowed 选项则表示生成的应用程序将在没有控制台窗口的情况下运行(仅适用于 Windows)。
pyinstaller --onefile --windowed main.py
pyinstaller打包streamlit预处理
  • PyInstaller 虽然会自动处理大多数依赖关系,但是streamlit库一般无法正确处理,可以使用下面的办法解决:
  1. 创建hook文件(命名以hook开头)
from PyInstaller.utils.hooks import copy_metadata
 
datas = copy_metadata("streamlit")

在这里插入图片描述

  1. 在项目根目录下创建main.py
import os
import sys

import streamlit.web.cli as stcli


def resolve_path(path):
    resolved_path = os.path.abspath(os.path.join(os.getcwd(), path))
    print(resolved_path)
    return resolved_path


if __name__ == "__main__":
    sys.argv = [
        "streamlit",
        "run",
        # 填写streamlit启动页面(本文把启动文件gui.py放在main.py同目录)
        resolve_path("gui.py"),
        "--global.developmentMode=false",
    ]
    sys.exit(stcli.main())

在这里插入图片描述

进行第一次打包
  • –additional-hooks-dir=:指定一个目录,该目录中包含自定义的钩子文件**(本文把钩子文件建立在main.py同目录)**。这些钩子文件可以帮助 PyInstaller 更准确地处理某些库或模块。
  • 打包完成后会生成main.spec、dist、build文件
pyinstaller --onefile --additional-hooks-dir=. main.py --clean
  • 第一次打包的执行文件可能依旧不会成功,因为我们没有指定但treamlit库路径,我们可以在main.spec文件里进行编辑
# -*- mode: python ; coding: utf-8 -*-

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    # 第一个参数:config:这是指定要包含的源文件的路径。在这个例子中,config 是一个配置文件所在文件夹,位于与 main.py 同级的目录下。
    # 第二个参数:'config':这是指定目标路径。在这里,'config' 表示当前目录的config文件夹。这意味着在打包后的 EXE 文件运行时,config应该被放置在 EXE 文件所在的目录下。
    # venv/lib/python3.8/site-packages':注意一定要填写你的streamlit安装位置的上级目录
    # 如果你的程序只有一个启动文件`gui.py`,没有配置文件夹或类似services文件夹,只需要datas=[('venv/lib/python3.8/site-packages','.')],
    datas=[('config','config'),('pages','pages'),('services','services'),('venv/lib/python3.8/site-packages','.')],
    hiddenimports=[],
    # 指定 Hook 文件所在的目录
    hookspath=['.'],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='main',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)
进行第二次打包
  • 先将之前生成的dist和build文件删掉
pyinstaller main.spec --clean
  • 注意:如果你的程序只有一个启动文件gui.py,没有配置文件夹或类似services文件夹,那么到这里应该就可以正常运行;否则:
    • 类似services文件夹**(存放函数)**在打包配置main.spec里指定即可;
    • pages**(存放streamlit页面)**文件夹需要复制到生成的dist里;
    • config配置文件夹建议复制到生成的dist里,因为这样配置改变时才会生效;
    • 启动文件gui.py复制到生成的dist里;

在这里插入图片描述

  • 点击main.exe即可运行,但建议在终端打开,可以看到更多信息

在这里插入图片描述

优化内存
  • 此时虽然可以正常运行,但是打包后的执行文件很大,如何优化打包内存?
    • 编辑main.spec的 pathex 参数:该参数用于指定可执行文件运行时的路径列表。这个列表中的路径会被用来寻找与应用程序相关的文件。pathex 参数对最终可执行文件的大小有显著影响,因为它决定了哪些文件和目录会被包含在最终的打包结果中
    • 设置pathex=[‘.’]:当 pathex=[‘.’] 时,PyInstaller 会明确地告诉打包工具只在当前工作目录下查找所需的文件和依赖项。这样可以减少不必要的文件被包含进来,从而减小最终可执行文件的大小。

4、源码下载路径

Excel数据清洗工具

标签:文件,处理,Excel,利器,文件夹,数据处理,main,数据,缺失
From: https://blog.csdn.net/qq_44771627/article/details/142111768

相关文章

  • Python在DevOps中的应用 - 提高自动化和效率的利器
    引言在当今快速发展的IT世界中,DevOps已成为提高软件开发和运维效率的关键方法。Python,作为一种多功能且易于学习的编程语言,在DevOps实践中扮演着越来越重要的角色。本文将深入探讨Python如何在DevOps中发挥作用,以及一些常用的Python库和工具,帮助您提高自动化程度和工作效率。作者:ht......
  • Java API 之 String类详解(掌握字符串操作的利器)
    深入剖析JavaString类:掌握字符串操作的艺术String类是Java中最基础、最常用的类之一,它用于表示文本字符串。String类提供了丰富的API,可以用来操作字符串,例如连接、分割、查找、替换等。本篇博客将深入剖析String类,并通过详细的代码示例展示其所有常用方法的用途,让......
  • 【大数据】如何读取多个Excel文件并计算列数据的最大求和值
    导语:在数据分析和处理中,我们经常需要从多个Excel文件中提取数据并进行计算。本文将带您通过一个实用的Python教程,学习如何读取D盘目录下特定文件夹内的多个Excel文件,并计算特定列数据的最大求和值。文章目录一、准备工作二、教程步骤1.导入必要的库2.设置文件路径3.......
  • Excel--常用办公技巧
     一、常用快捷键:Ctrl+F查找内容,Ctrl+H替换内容Ctrl+N新建文件,Ctrl+P/F2(+Fn)打印预览Ctrl+Z 撤销操作,Ctrl+Y 恢复操作Ctrl+1,打开单元格格式对话框Ctrl+2/B字体加粗Ctrl+3/I字体倾斜Ctrl+4/U添加下划线Ctrl+5添加删除线Ctrl+9,快速隐藏行(选中列则快速隐藏全部工作表......
  • Excel--统计类函数,COUNT函数、COUNTA函数、COUNTBLANK函数、COUNTIF函数、COUNTIFS函
    目录 COUNT函数COUNTA函数COUNTBLANK函数COUNTIF函数COUNTIFS函数SUM函数SUMIF函数SUMIFS函数AVERAGE函数AVERAGEIFS函数COUNT函数计算指定区域内中含数据的单元格的个数,结果返回包含数字单元格的数目!只能计算包含数字的单元格COUNTA函数计算指定区域内所......
  • Adobe Animate:动态矢量图形的创作利器
    #AdobeAnimate:动态矢量图形的创作利器引言在数字媒体和动画制作领域,AdobeAnimate(原名Flash)一直是一款备受推崇的工具。它不仅能够创建丰富的动态矢量图形,还能制作交互式动画和多媒体内容。无论是网页设计、游戏开发,还是动画制作,AdobeAnimate都提供了强大的功能和灵活的创作环境......
  • DolphinScheduler:大数据任务调度利器
    目录一、概述二、主要特性三、DolphinScheduler架构四、安装与配置1.环境准备2.安装步骤[单机模式]五、使用DolphinScheduler创建任务六、应用场景七、总结一、概述在大数据场景中,任务调度器是必不可少的工具,用于协调多个数据处理任务的执行顺序、调度时间......
  • 中文关键字检索分析-导出到csv或者excel-多文件或文件夹-使用python和asyncio和pandas
    1.02版本把原来的tab一个个拼接成文件输出,改成pandas的dataframe使用asyncio库来使用协程,但是测试下来速度好像是差不多的。可能速度太快了,没能很好的测出来差异。原来的最初的代码是java版本的,现在用python重写一遍java版本使用completableFuture来异步IO,主要是文件输......
  • Python读写Excel的各种库
    各库的基本信息库名官网/文档地址说明pandaspandasisafast,powerful,flexibletool.用于读写Excel和数据分析(需其他读写引擎)openpyxlAPythonlibrarytoread/writexlsx/xlsmfiles用于读写OOXML格式文件,读写xlsx格式的首选xlsxwriterAPythonm......
  • 文件导出:Hutool 导出 Excel文件
     使用Hutool实现Excel数据导出。导出Excel文件为两个Sheet页。1.设备基本信息:包括设备编号、设备名称、设备位置等。2.设备维护记录:包括设备维护日期、维护人员、维护内容等。 1.Hutool简介Hutool是一个功能丰富的Java工具库,其中包含用于Excel文件处理的......