利用Python处理excel表格,panda合并表格、合并多个excel、多个sheet

news2024/11/23 12:07:05

前言

记录一下,在使用pandas处理excel表格表格时候,关于分割(切分)表格这一块儿的操作。
这个系列会有三篇左右文章,这是第二篇,excel表格合并

我们常说的 excel文件

  • 在广义上,是指以 xlsxlsx 为后缀的文件。(xlsxlsx分别为新旧版本的excel生成的文件格式
  • 在狭义上,是指Microsoft公司编写的一款电子表格软件。

不论如何,这些知识知道了总不会有坏处。


关于excel的合并这一块儿,像wps软件,做的是非常优秀的,一键进行合并。

在这里插入图片描述

既然它已经这么优秀了,那为啥还写这篇文章呢?对啊!为什么呢?为什么你还会查阅这篇文章呢!!!

解决问题🐓🐓

在我看来,使用Python处理excel表格,至少在合并这一块儿,如果被合并的内容格式是不一致的,那是非常没必要的。因为格式花样层出不穷,不同格式还得不同处理,属于吃力不讨好的活儿。所以本文的合并,只针对于格式一致的excel文件。(换句话说就是我只跳了最简单的来介绍。

表格合并这一块儿,能做的有点多(组合起来是很多的),在这里只介绍

  • 单个excel文件,多个sheet,合并多个sheet到一个sheet中并保存
  • 多个excel文件,单个sheet,合并多个excek到一个excel文件中并保存

安装模块

pip install openpyxl
pip install pandas

知识点📖📖

pandas

类型链接
文档官方文档:https://pandas.pydata.org
视频视频总结:https://www.bilibili.com/video/BV1PZ4y1U7Y7
项目地址项目地址:https://github.com/Frica01/BlogCode/tree/main/excel-operation

代码

这里给出伪代码,可以运行。如需配套练习的excel文件,可从这里获取 excel-operation

多个sheet 合成一个sheet

def merge_multi_sheet_to_single_sheet(file_path):
    """
    合并多个sheet到一个sheet中

    Args:
        file_path(str): 文件路径

    Returns:None

    """
    output_file_path = f'./output/{os.path.basename(file_path)}'
    df = read_excel(file_path, sheet_name=None)
    # 新建一个空的DataFrame
    merge_df = DataFrame()
    # 创建新文件
    with ExcelWriter(path=output_file_path) as writer:
        for sheet_name in list(df.keys()):
            # 将sheet添加到merge_df去
            merge_df = concat([merge_df, df[sheet_name]])
        merge_df.to_excel(excel_writer=writer, sheet_name='merge', index=False, )

多个excel 合成一个excel

def merge_multi_excel_to_single_excel(files_path):
    """
    合并多个excel到一个excel文件夹中

    Args:
        files_path(list|tuple|str): 文件夹路径

    Returns: None

    """
    # 处理文件导出路径
    if not os.path.exists('./output'):
        os.makedirs(name='./output')
    # 如果传入的路径是字符串,则取当前文件夹的所有excel文件,+ 补全路径
    if isinstance(files_path, str):
        files_path = [os.path.join(os.path.abspath(files_path), _) for _ in os.listdir(files_path)]
    else:
        files_path = [os.path.abspath(_) for _ in files_path]
    new_df = DataFrame()
    for file_path in files_path:
        df = read_excel(file_path, sheet_name=0)
        # 合并文件
        new_df = concat([new_df, df])
        # 删除子文件
        # os.remove(file)'./excel-file/multi_sheet.xlsx, '
    # 保存文件
    new_df.to_excel(excel_writer=f'./output/merge.xlsx', sheet_name='merge', index=False)

后话

本次分享到此结束,如有疑问请自行解决。
see you~🐱‍🏍🐱‍🏍

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

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

相关文章

[1173]regexp_replace()和regexp_substr()函数的用法

文章目录REGEXP_REPLACE的使用方法命令格式:regexp_replace(source, pattern, replace_string, occurrence)参数说明返回值常用案例其他案例正则符号释义regexp_substr()函数的用法REGEXP_REPLACE的使用方法 命令格式:regexp_replace(source, pattern, r…

PF-Net基于深度学习的点云补全网络

1. 论文和代码 论文:https://openaccess.thecvf.com/content_CVPR_2020/papers/Huang_PF-Net_Point_Fractal_Network_for_3D_Point_Cloud_Completion_CVPR_2020_paper.pdfhttps://openaccess.thecvf.com/content_CVPR_2020/papers/Huang_PF-Net_Point_Fractal_Netw…

微信小程序开发 开启

小程序和普通网页开发的区别 1.运行环境不同 小程序是运行在微信环境中,而网页是运行在浏览器环境中。 2.API不同 由于运行环境不同,所以小程序中,无法调用DOM和BOM的API。 但是,小程序中可以调用微信环境提供的各种API&#…

Vue框架常用组件的快速构建项目Ctrl+c Ctrl+a Ctrl+v第十四课)

不管前方的路有多苦,只要走的方向正确,不管多么崎岖不平,都比站在原地更接近幸福。 在学习技术的道路上:落后又要被挨打。这是现实 常用到的组件库:下面的网站在自己空闲时间去看看 下面的资源只需要ctrlc ctrla ctrv Border 边框…

业务:财务软件之会计六要素

一、引言 会计六要素是资产、负债、所有者权益、收入、费用、利润。资产随处可见,比如房屋、机器设备、运输工具、仓库里的货物等。负债确认必须具备以下条件:负债是企业承担的现时义务;负债预期会导致经济利益流出企业;负债是由…

[附源码]计算机毕业设计JAVA学生宿舍设备报修

[附源码]计算机毕业设计JAVA学生宿舍设备报修 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

MobileOne实战:使用MobileOne实现图像分类任务(二)

文章目录训练导入项目使用的库设置全局参数图像预处理与增强读取数据设置模型定义训练和验证函数训练函数验证函数调用训练和验证方法再次训练再次训练的模型为什么只保存model.state_dict()关于加入EMA后验证集不得分的问题测试总结在上一篇文章中完成了前期的准备工作&#x…

C# 反射(一)基础概念

一、C# 反射(refection)基础概念 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。 反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型…

Spring框架(七):Spring的Web配置应用

Spring的Web配置应用引子JavaWeb的三大组件模拟Spring的web开发组件spring-webSpring的web开发组件spring-web引子 痛定思痛,主要问题出现在自己雀氏不熟悉框架底层、一些面试题,以及sql的一些情况淡忘了。 本章节的开始是对于过去的重新回顾&#xff0…

MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系

目录 一、创建Test工程 二、自定义坐标系 三、映射模式(MapMode) 四、映射模式函数 1)设置映射模式函数 2)设置窗口范围函数 3)设置视区范围函数 4)设置视区原点函数 5)偏移矩形函数 五、 不改变…

MyTinySTL学习笔记:迭代器iterator(一)

前言 本系列文章所学习的Github上基于C11的开源项目MyTinySTL,项目地址为:(https://github.com/Alinshans/MyTinySTL),感谢Alinshans大佬开源这个优质的学习项目。 一、什么是迭代器 无论是序列容器还是关联容器,最…

useWindowPrint 自定义的打印HOOK

useWindowPrint 自定义的打印HOOK 1 介绍 useWindowPrint 用于实现页面的打印,打印的效果相对来说比较好。useWindowPrint 支持 onBeforePrint、onBeforePrintContent、onAfterPrint 等回调,可以很方便地在不同阶段进行操作,如果觉得使用回…

基于PHP+MySQL蛋糕甜点销售网站的设计与开发

现如今先进科学技术高速发展,计算机技术已经被社会的各个领域广泛应用。随着计算机技术和通信技术的迅猛发展,互联网的规模也逐步增大,互联网的元素也随之逐渐增加,可以利用其发展通信,也可以利用其进行商业用途&#…

scratch小老鼠偷面包 电子学会图形化编程scratch等级考试二级真题和答案解析2022年9月

目录 scratch小老鼠偷面包 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <

Vue Class与Style绑定

Vue Class与Style绑定1 Class绑定1.1 字符串写法1.2 数组写法1.3 对象写法2 Style绑定2.1 对象写法2.2 数组写法1 Class绑定 在Vue中&#xff0c;如果要为某个元素动态添加某个类&#xff0c;并不会使用document.getElementById等选择器将该元素获得&#xff0c;而是使用v-bin…

Tomcat突然停止运行/Server Tomcat v8.5 Server at localhost fail

Server Tomcat v8.5 Server at localhost failed to start./org.apache.catalina.startup.Catalina start 严重: 所必需的服务组件启动失败&#xff0c;所以无法启动Tomcat 1.使用eclipse写系统时突然无法运行jsp文件 2.查看任务管理器&#xff0c;将其启动&#xff0c;依旧不…

101-115-hive-优化执行计划表优化

101-压缩存储-优化&#xff1a; 执行计划&#xff08;Explain&#xff09; 1&#xff09;基本语法 EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query &#xff08;2&#xff09;查看详细执行计划 hive (default)> explain extended select * from emp; hive (de…

OpenGL 图像绿幕抠图

目录 一.OpenGL 图像绿幕抠图 1.IOS Object-C 版本1.Windows OpenGL ES 版本2.Windows OpenGL 版本 二.OpenGL 图像绿幕抠图 GLSL Shader三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL E…

Linux 内核(Kernel)组成分析

【好文推荐】 需要多久才能看完linux内核源码&#xff1f; 浅析linux内核网络协议栈--linux bridge 深入理解SR-IOV和IO虚拟化 一文了解Linux上TCP的几个内核参数调优 概述Linux内核驱动之GPIO子系统API接口 一、Linux内核简介 Linux 内核采用宏内核架构&#xff0c;即 Linux …

Springboot利用Security做OAuth2授权验证

OAuth2获取授权令牌&#xff08;token&#xff09;通常有四种方式&#xff1a;授权码模式&#xff0c;简化模式&#xff0c;客户端模式&#xff0c;和密码模式。针对自己系统内用户的登录&#xff0c;通常使用密码模式进行授权。 我们利用Spring Security OAuth2来制作一个授权…