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

news2024/9/20 18:36:05

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、生成可执行文件

  • 利用pyinstaller打包streamlit移植到其他电脑上使用

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数据清洗工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NISP 一级 | 3.3 网络安全防护与实践

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:虚拟专用网络 VPN 概述 虚拟专用网络(Virtual Private Network,VPN)是在公用网络上建立专用网络的技术。整个 VPN 网络的任意两个节点之间的连…

Python | Leetcode Python题解之第397题整数替换

题目: 题解: class Solution:def integerReplacement(self, n: int) -> int:ans 0while n ! 1:if n % 2 0:ans 1n // 2elif n % 4 1:ans 2n // 2else:if n 3:ans 2n 1else:ans 2n n // 2 1return ans

游戏领域的AI革命:从静态世界到动态玩家体验

在当今的数字化时代,游戏已经成为连接虚拟与现实世界的桥梁。开放世界游戏以其无与伦比的自由度和沉浸感吸引了无数玩家,但同时也面临着对话重复、行为可预测和互动有限等问题。本文将探讨AI技术如何通过程序化生成、动态NPC、实时行为生成以及声音与音乐等方面的应用,为游戏…

Android 知识简记 快速回顾各种知识

2.Java 基础&容器&同步&设计模式 3.Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理 4.Android 基础&性能优化&Framwork 5.Android 模块化&热修复&热更新&打包&混淆&压缩 6.音视频&FFmpeg&播放器 …

创游系列开心娱乐完整组件

别人分享的一套东西,是个不错的娱乐源码,里面包含了很多小游戏。可以创建房间。 没测试自行研究吧,内含搭建教程。 代码免费下载:百度网盘

Java | Leetcode Java题解之第397题整数替换

题目: 题解: class Solution {public int integerReplacement(int n) {int ans 0;while (n ! 1) {if (n % 2 0) {ans;n / 2;} else if (n % 4 1) {ans 2;n / 2;} else {if (n 3) {ans 2;n 1;} else {ans 2;n n / 2 1;}}}return ans;} }

3D Gaussian Splatting 论文学习

概述 目前比较常见的渲染方法大致可以分为2种: 将场景中的物体投影到渲染平面:传统的渲染管线就是这种方式,主要针对Mesh数据,可以将顶点直接投影成2D的形式,配合光栅化、深度测试、Alpha混合等就可以得到渲染的图像…

【Java基础】——深入理解Java异常

目录 1- 什么是异常概述(What、Why)1-1 什么是异常(What)1-2 为什么要有异常处理机制(Why) 2- ⭐异常体系结构图-总览2-1 分类2-2 异常体系结构小结 3- 五大运行时异常3-1 NullPointerException 空指针异常3-2 ArithmeticException 算数异常3-3 ArrayInd…

HPL 源码结构分析

文件夹结构: $ cd /home/hipper/ex_hpl_hpcg/ $ pwd $ mkdir ./openmpi $mkdir ./openblas $mkdir ./hpl $ tree 1. 安装openmpi 1.1.1 使用Makefile下载配置编译安装 openmpi Makefile: all:wget https://download.open-mpi.org/release/open-m…

java spring定时任务-动态任务

cron表达式 在线生成https://cron.qqe2.com/ 6个时间刻度的话 * * * * * * 分别对应 秒 分 时 日 月 星期 ; 7个时间刻度的话 * * * * * * * 分别对应 秒 分 时 日 月 星期 年;每隔5秒执行一次:*/5 * * * * ? 每隔1分钟执行一次&#xff1a…

AI如何辅助未来数学研究:陶哲轩的最新见解与应用展望

随着人工智能(AI)技术的飞速发展,AI在多个领域的应用已经渗透到了我们生活的方方面面。然而,在严谨且逻辑性极强的数学研究领域,AI能否真正发挥作用?2024年,著名数学家、菲尔兹奖得主陶哲轩在IM…

【Nacos】配置中心

Nacos除了注册中心和负载均衡之外,还是一个配置中心,具备配置管理的功能。 Nacos 配置中心是一种用于集中式管理应用程序配置的服务,它可以将应用程序的配置从代码和本地配置文件中分离出来,实现配置的集中管理和动态更新。通过 …

刘润《关键跃升》读书笔记7

沟通: 想明⽩,说清楚,能接受 团队沟通的正确⽅式可以⽤9个字来概括:想明⽩,说清楚,能接受 (⻅图4-1)想明⽩ 有时经理跟⼈沟通,讲完之后却⽆奈地对员⼯说,你怎…

远程访问电脑共享文件

远程访问电脑共享文件,可以通过多种方法实现,每种方法都有其特点和适用场景。以下是一些常见的方法及其步骤: 一、使用Microsoft远程桌面 启用远程桌面: 在目标电脑上,打开“开始”菜单,选择“设置”>“…

常见概念 -- WDM/OTN 时延

什么是时延? 在通信网络中,时延指原始数据经一台转发设备的编码等一系列处理过程后由发送端发送,通过传输链路传输,到达另一台(目的地)设备的接收端并解码还原为原始数据所花费的时间。网络时延主要由以下几…

多维时序 | Matlab基于TCN-Transformer+LSTM双输入神经网络时间序列预测

多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测 目录 多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测&#xff…

基于SpringBoot的校园自助洗衣服务管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的校园自助洗衣服务…

SAP Fiori-Vscode 环境搭建中npm报错

文章目录 前提: vscode 安装好了,node 配置完毕,npm环境搭建OK新建一个Fiori 初始化初始化性项目的报错&警告Q1: npm WARN config global --global, --local are deprecated. Use --locationglobal insteadQ2: npm打包出现警告&#xff0…

GPU池化赋能智能制造

2023年3月10日,“第六届智能工厂高峰论坛”在杭州隆重揭幕。本次会议由e-works数字化企业网、浙江制信科技有限公司主办,中国人工智能学会智能制造专业委员会、长三角新能源汽车产业链联盟、长三角(杭州)制造业数字化能力中心、浙江省智能工厂操作系统技…

基于微信小程序的宠物之家的设计与实现

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的宠物之家/宠物综合…