为什么大公司不用pandas取代excel?

news2024/12/26 21:35:24

如果你熟练使用Excel的话,你就会发现有些pandas的功能,在Excel中也可以实现,而且对比下来,Excel操作更简单,从效率上跟pandas更无二致,这样Excel的优势就比较突出了,比如下面使用pandas和Excel分别用来实现表格合并。

1.pandas批量合并表格

使用pandas批量合并表格数据,适用于数据量比较大的批量数据,使用编程的方式,借助Python中的两个标准库pandas和os库,来实现表格的批量合并,下面先了解一下这两个库的作用。

1.1 Pandas

  • pandas是python的一个数据分析包
  • pandas是基于NumPy 解决数据分析任务的一种工具
  • pandas 纳入了大量库和一些标准的数据模型
  • pandas提供了高效地操作大型数据集所需的工具

1.2 Os库

  • os库提供通用的、基本的操作系统交互功能
  • os库包含路径操作、进程管理、环境参数等处理函数

1.3 代码演示

下面实际运用代码进行批量处理表格数据。

第一步、导入批量处理数据所需的Python标准库。

# 导入库
import pandas as pd
import os

第二步、设置待读取文件夹、待保存的文件夹以及待保存的表格名。

# 待读取批量csv的文件夹
read_path = 'C:\\Users\\shangtianqiang\\Desktop\\data'
# 待保存的合并后的csv的文件夹,在路径自己建立一个data_merge文件夹
save_path =  'C:\\Users\\shangtianqiang\\Desktop\\data_merge'
# 待保存的合并后的表格名
csvsave_name = 'hebing.csv'

第三步、借助os库修改当前工作目录。

#修改当前工作目录
os.chdir(read_path)

第四步、将该文件夹下的所有文件名存入一个列表。

#将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()

第五步、读取第一个CSV文件并包含表头,注意数据的编码方式。

#读取第一个CSV文件并包含表头
df = pd.read_csv(read_path +'\\'+ file_list[0],encoding = 'gbk')  #编码默认UTF-8,若乱码自行更改为gbk

第六步、将读取的第一个CSV文件写入合并后的文件保存。

#将读取的第一个CSV文件写入合并后的文件保存
df.to_csv(save_path+'\\'+ save_name,encoding="utf_8_sig",index=False)

第七步、循环遍历列表中每一个表格的文件名,并且逐个追加到合并后的文件夹内,这里已经导入了第一个表格的数据,所以,这里FileStart=1,而不是FileStart=0。

#循环遍历列表中各个CSV文件名,并追加到合并后的文件
FileStart = 1
FileEnd = len(file_list)
for i in range(FileStart,FileEnd):
    df = pd.read_csv(read_path + '\\'+ file_list[i],encoding = 'gbk') # 编码默认UTF-8,若乱码自行更改为gbk
    df.to_csv(save_path+'\\'+ save_name,encoding="utf_8_sig",index=False, header=False, mode='a+')

这里逐一演示代码的运行,可以调试完毕后,将代码封装在一起,针对大批量的数据,这个方法既快捷,又高效,但pandas批量合并数据依托于编译环境和Python库,很多用户在创建Python编译环境导入库时遇到问题,容易望而却步,接下来我们看看Excel操作。

2.Excel VBA批量合并表格

上面介绍了使用pandas批量合并数据,接下来,我将详细介绍如何使用Excel VBA 脚本实现在多表之间自动合并数据,并通过一些关键的 VBA 语法和逻辑,使你的 Excel 工作更高效、更智能。

2.1 数据演示

如下为一张销售订单数据Excel工作簿,内含"1日","2日","3日"共三个sheet表,现在需要将这三个sheet表合并为一个sheet表,并且,当有新增加的sheet表时,也可以继续合并,常规做法是一个一个sheet表复制、粘贴,倘若有上百个这样的sheet表,处理效率就很慢。

2.2 VBA准备工作

接下来,我将使用Excel VBA编写代码进行批量合并,要使用Excel VBA功能,需要在自定义功能区中勾选"开发工具"选项,默认在主页不显示"开发工具"选项,需要手动勾选。首先在Excel工作簿中点击“文件”选项。

然后在对应的菜单下点击“选项”按钮。

打开Excel选项,点击“自定义功能区”,然后勾选“开发工具”,点击“确定”按钮。

在主页功能区即可看到已经加载出“开发工具”选项。

2.3 编写VBA

在 Excel 中点击 "开发工具" 选项卡,点击 "Visual Basic" 按钮,打开 VBA 编辑器,VBA代码都是写在VBA 编辑器运行。

如下即为VBA 编辑器的操作界面。

在 VBA 编辑器窗口中,右键 "VBAProject(销售订单数据.xlsx)" ,依次点击 "插入" -> "模块",在插入的模块中编写 VBA 代码。

如下为编写的VBA代码,代码相对比较长,有一定的学习门槛和难度,如果看不明白的话,可以直接复制粘贴使用,另外,网上也有很多写技术贴的博主分享VBA代码,可以直接复制粘贴使用。

Sub 合并数据到新表()
    Dim ws As Worksheet
    Dim targetSheet As Worksheet
    Dim lastRow As Long
    Dim nextRow As Long
    Dim i As Integer

    ' 删除之前合并的数据表(如果存在)
    On Error Resume Next
    Application.DisplayAlerts = False
    Set targetSheet = ThisWorkbook.Sheets("合并结果")
    If Not targetSheet Is Nothing Then
        targetSheet.Delete
    End If
    Application.DisplayAlerts = True
    On Error GoTo 0

    ' 新建一个Sheet用于存储合并后的数据
    Set targetSheet = ThisWorkbook.Sheets.Add
    targetSheet.Name = "合并结果"

    ' 假设第一张表有表头,复制表头到目标Sheet
    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> targetSheet.Name Then
            ws.Rows(1).Copy Destination:=targetSheet.Rows(1)
            Exit For
        End If
    Next ws

    ' 遍历所有工作表并合并数据
    nextRow = 2 ' 设置从第2行开始合并数据(因为第1行为表头)
    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> targetSheet.Name Then
            lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            ws.Range("A2:A" & lastRow).EntireRow.Copy Destination:=targetSheet.Cells(nextRow, 1)
            nextRow = targetSheet.Cells(targetSheet.Rows.Count, 1).End(xlUp).Row + 1
        End If
    Next ws

    MsgBox "数据合并完成!", vbInformation
End Sub

2.4 VBA运行

将VBA代码复制粘贴到到 VBA 编辑器中,点击 "运行" 按钮,或按下 F5 键运行该脚本。

返回 Excel 工作簿,由结果可以看到,所有的 sheet 表数据均合并至新的 "合并结果" 表中。

为了方便有新增的sheet表进行数据合并,可以添加一个表单控件,点击"开发工具",插入一个表单控件。

点击宏名称用于指定宏,然后点击确定按钮。

如下是设置后的表单控件,只要点击表单控件"开始合并",即可一键进行数据合并。

2.5 保存VBA

为了将编写的VBA可以永久保存,可以将工作簿保存为 *.xlsm 格式,点击"文件"选项,在保存类型中选择"Excel启用宏的工作簿",即可保存宏。

如果有新增的sheet表,比如这里新增"4日","5日"两个sheet表,仅需点击表单控件"开始合并",即可一键合并。

如下红色标记的地方,即为新增的sheet表批量合并后的结果。

以上,我们见识到了 VBA 在处理多表数据合并中的强大能力,无论是对于需要频繁处理数据报表的日常工作,还是面对复杂的数据管理任务,VBA都可以提高你的工作效率,对比pandas来说Excel操作更加简单,更适合对于代码和编译环境不那么了解的用户,这也是无法取代的原因。

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

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

相关文章

【实战篇】幻读是什么,幻读有什么问题?

背景 我们先使用一个小一点儿的表。建表和初始化语句如下&#xff1a; CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB; insert into t values(0,0,0),(5,5,5), (10,10,10),(15,15,15),(20,…

2010-2022 CSP-J/普及组T1-T4考点统计

T1考点统计 T2考点统计 T3考点统计 T4考点统计 总结

MOE论文汇总2

TASK-CUSTOMIZED MASKED AUTOENCODER VIA MIXTURE OF CLUSTER-CONDITIONAL Experts 这篇论文提出了一种新颖的自监督学习方法&#xff0c;名为“Mixture of Cluster-conditional Experts (MoCE)”&#xff0c;旨在解决传统Masked Autoencoder (MAE)在不同下游任务中可能遇到的负…

蓝桥杯-STM32G431RBT6(UART解析字符串sscanf和解决串口BUG)

一、C语言常识 printf和sprintf的主要区别在于它们的功能和用途&#xff1a; printf&#xff1a;主要用于将格式化的数据输出到标准输出&#xff08;如屏幕&#xff09;。sprintf&#xff1a;则是将格式化的数据存储到一个指定的字符串缓冲区中&#xff0c;而不是直接输出。 pr…

Docker实操:安装MySQL5.7详解(保姆级教程)

介绍 Docker 中文网址: https://www.dockerdocs.cn Docker Hub官方网址&#xff1a;https://hub.docker.com Docker Hub中MySQL介绍&#xff1a;https://hub.docker.com/_/mysql ​ 切换到“Tags”页面&#xff0c;复制指定的MySQL版本拉取命令&#xff0c;例如 &#xff1a…

LabVIEW提高开发效率技巧----使用LabVIEW工具

LabVIEW为开发者提供了多种工具和功能&#xff0c;不仅提高工作效率&#xff0c;还能确保项目的质量和可维护性。以下详细介绍几种关键工具&#xff0c;并结合实际案例说明它们的应用。 1. VI Analyzer&#xff1a;自动检查代码质量 VI Analyzer 是LabVIEW提供的一款强大的工…

架构师,被严重低估的角色!

在企业数字化转型与变革的壮阔浪潮中&#xff0c;企业架构&#xff08;Enterprise Architecture&#xff0c;EA&#xff09;作为一门高度复杂且跨学科的知识体系&#xff0c;无可争议地成为了驱动组织战略深化与技术创新的核心引擎。尽管市场上充斥着丰富的指导理论与参考资料&…

202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】

202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】 2024/9/12 10:44 缘起&#xff0c;拿到一块MIPI屏&#xff0c;需要使用飞凌的OK3588-C的核心板在Android12下点亮。 在飞凌的Linux R4下修改部分屏参之后即可直接点亮。 但是在飞凌的Andro…

Java笔记-MinIO Java SDK的使用

此博文内容为&#xff1a; 使用SDK创建bucket&#xff1b; 使用SDK上传文件&#xff1b; 使用SDK下载文件。 maven添加&#xff1a; <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</versi…

Linux使用Clash,clash-for-linux

文件下载 clash-for-linuxhttps://link.zhihu.com/?targethttps%3A//zywang.lanzn.com/ijE2a1m7h6mb&#xff08;百度和阿里云盘都不支持这个文件分享&#xff09;。 使用须知 - 此项目不提供任何订阅信息&#xff0c;请自行准备Clash订阅地址。 - 运行前请手动更改.env文件…

嵌入式开发—CAN通信协议详解与应用(中)

书接上回&#xff1a;嵌入式开发—CAN通信协议详解与应用&#xff08;上&#xff09; 文章目录 CAN通讯中的位时间和位同步位时间的构成采样点 位时间的计算公式时间量子&#xff08;Time Quantum, TQ&#xff09;位时间的阶段示意图位同步机制 CAN通信中的仲裁规则仲裁规则的…

03-Mac系统PyCharm主题设置

目录 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm&#xff0c;点击Settings 3. 点击第一项Appearance& Behavior 4. 点击Appearance 5. 找到Theme进行设置 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm&#xff0c;点击Settings 3. 点击第一项Appearance& Behavi…

【例题】lanqiao4425 咖啡馆订单系统

样例输入 3 2 2 1 3 1 2样例输出 3 2样例说明 输入的数组为&#xff1a;【3&#xff0c;1&#xff0c;2】 增量序列为&#xff1a;【2&#xff0c;1】 当增量 h2&#xff1a;对于每一个索引 i&#xff0c;我们会将数组元素 arr[i] 与 arr[i−h] 进行比较&#xff0c;并进行可…

Stable Diffusion绘画 | ControlNet应用-IP-Adapter:堪比 Midjourney 垫图

IP-Adapter 是腾讯AI实验室研发的控制器&#xff0c;属于 ControlNet 最强控制器前三之一。 如果想参照图片的风格&#xff0c;生成各种各样类似效果的图片&#xff0c;就可以用到 IP-Adapter。 在 ControlNet 单元中上传一张图片&#xff1a; 不输入任何提示词&#xff0c;出图…

MySQL数据库:掌握备份与恢复的艺术,确保数据安全无忧

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

波导阵列天线学习笔记 馈电网络1 使用X型全公共波导馈网的毫米波大规模天线阵列的带宽提升

摘要&#xff1a; 全公共波导馈网的一次反射等效模型被研究用于提出一种毫米波大规模天线阵列带宽提升的新方法。理论分析显示由馈电网络拓扑造成的指定频率的多级小反射的同相叠加现象是影响大规模阵列的可实现带宽的重要因素&#xff0c;除了包含阵列的独立功分器和反射器的带…

【Hot100】LeetCode—295. 数据流的中位数

目录 1- 思路题目识别堆实现 2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 原题链接&#xff1a;295. 数据流的中位数 1- 思路 题目识别 识别1 &#xff1a;实现一个数据结构&#xff0c;求中位数 堆实现 思路 利用优先队列&#xff0c;小根堆放较小的元…

专科医院内外网数据摆渡,什么方法最“对症下药”?

专科医院是专门从事某一个或少数几个医学分科的医院。这些医院在特定的医学领域内具有较高的专业性和技术水平&#xff0c;通常致力于某一类疾病的预防、诊断和治疗。如传染病医院、口腔医院、肿瘤医院等。 根据相关法律法规和行业标准&#xff0c;涉及医疗数据的网络必须采取必…

影刀RPA实战:网页爬虫之携程酒店数据

1.实战目标 大家对于携程并不陌生&#xff0c;我们出行定机票&#xff0c;住酒店&#xff0c;去旅游胜地游玩&#xff0c;都离不开这样一个综合性的网站为我们提供信息&#xff0c;同时&#xff0c;如果你也是做旅游的公司&#xff0c;那携程就是一个业界竞争对手&#xff0c;…

Zookeeper 3.8.4 安装和参数解析

安装 zookeeper 之前必须先安装 JDK&#xff0c;有关Linux环境JDK可以参考我以前写的博文 1、关于Linux服务器配置java环境遇到的问题 2、Linux环境安装openJDK 3、Centos7.3云服务器上安装Nginx、MySQL、JDK、Tomcat环境 文章目录 1. zookeeper 安装2. 参数解析 1. zookeeper …