Python 合并/拆分Excel

python对于合并excel本篇文章给出合并xlsx文件的方法,xls的方法不在本文介绍

拆分数据可以适用于xlsx或xls

合并excel

        先读取所有的excel,得到df列表,在将这个df列表 按行进行合并

import pandas as pd# 读取所有xlsx
def read_xlsx(xlsx_list):""":param xlsx_list: xlsx文件列表:return: """if len(xlsx_list) == 0 or xlsx_list is None:print("没有任何xlsx文件,无法读取数据")returndf_list = []for xlsx in xlsx_list:df = pd.read_excel(xlsx)df_list.append(df)return df_list# 合并xlsx
def merge_xlsx(df_list):""":param df_list: df列表:return: """if len(df_list) == 0 or df_list is None:print("没有任何df,无法合并数据")returnmerged_df = pd.concat(df_list, axis=0)xlsx_path = "文件保存路径"merged_df.to_excel(xlsx_path, index=False)return xlsx_pathfile_list = ["xlsx文件路径1","xlsx文件路径2","xlsx文件路径3","xlsx文件路径4"]
read_df_list = read_xlsx(file_list)
merged_file = merge_xlsx(read_df_list)
print(f"合并后的文件路径:{merged_file}")

拆分excel

        按照指定的行数对原表的数据进行拆分,拆分的数据每一个表格会保留表头(标题行)

import xlrd
import xlwt
import pandas as pd# 拆分数据
def split_file(file_path):"""将传入的xls文件格式的表格进行,按照指定行数进行拆分:return: 返回拆分后的文件路径列表"""if file_path is None:print("没有需要拆分的表格")returnsplit_rows = 500  # 每个表拆分数据的行数wb = xlrd.open_workbook(file_path)sheet = wb.sheet_by_index(0)total_rows = sheet.nrowssplit_size = split_rows + 1header = sheet.row_values(0)# 拆分大于指定的长度的文件first_file = Truefor i in range(total_rows // split_size):if first_file:  # 如果是第一个文件则从第二行开始(跳过表头)start_row = i * split_size + 1first_file = Falseelse:start_row = i * split_sizeend_row = start_row + split_rowsdata = [sheet.row_values(j) for j in range(start_row, end_row)]filename = f'拆分的文件_{i + 1}.xls'workbook = xlwt.Workbook()sheet_new = workbook.add_sheet("Sheet1")for col_index, value in enumerate(header):sheet_new.write(0, col_index, value)  # 写入表头for row_index, row in enumerate(data):for col_index, value in enumerate(row):sheet_new.write(row_index + 1, col_index, value)  # 写入数据workbook.save(filename)print(f"拆分的文件路径:{filename}")your_file_path = "需要拆分的表格路径"
split_file(your_file_path )

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

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

相关文章

9月18日,每日信息差

今天是2023年09月19日,以下是为您准备的11条信息差 第一、江苏无锡首次获得6000年前古人类DNA 第二、全球天然钻石价格暴跌。数据显示,国际钻石交易所钻石价格指数在2022年3月达到158的历史峰值,之后一路下跌到目前的110左右,创…

Glide - Android的图像加载和缓存库,专注于平滑滚动

官网 GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 项目介绍 An image loading and caching library for Android focused on smooth scrolling Glide is a fast and efficient open source media management a…

谷歌版ChatGPT与旗下邮箱、视频、地图等,实现全面集成!

9月20日,谷歌在官网宣布推出Bard Extensions。借助该扩展用户可在谷歌的Gmail、谷歌文档、网盘、Google 地图、视频等产品中使用Bard。 Bard是谷歌基于PaLM 2大模型,打造的一款类ChatGPT产品,可自动生成文本、代码、实时查询信息等。新的集成…

数据结构与算法(C语言版)P5---栈

1、栈 1.1、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。__进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。__栈中的数据元素遵守__后进先出(先进后出)__LIFO&#xf…

iOS 蓝牙连接 connectionSupervisionTimeout 是720ms 还是 2~6s

对比 HCI可以看到iPhone作为主设连接外设时,可以看到: connection Event Interval 30ms; connection Slave Latency 0; connection Supervision Timeout 720ms;但苹果官方文档《 Accessory Design Guidelines for …

FPGA原理与结构(12)——FIFO IP核原理学习

系列文章目录:FPGA原理与结构(0)——目录与传送门 一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写,是一种先入先出的数据缓冲器,与一般的存储器的区别在于没有地址线, 使用起来简单&…

C/C++算法入门 | 简单模拟

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴一、害死人不偿命的(3n1)猜想1.题目(PAT B1001)2.思路3.代码实现 &am…

BD就业复习第一天

hive 1.分区分桶 在Hive中,分区(Partition)和分桶(Bucketing)都是用于数据管理和查询性能优化的技术。它们有不同的用途和特点。 分区(Partition): 定义:分区是将数据…

Hexo在多台电脑上提交和更新

文章目录 1.博客搭建2.创建一个新文件夹new,用于上传hexo博客目录3.github上创建hexo分支并设置为默认分支创建hexo分支将hexo分支设置为默认分支 4.进入新建的文件夹中git clone,再上传相关文件至hexo分支1.clone下来的文件夹内应该有个.gitignore文件&…

Springboot部署服务器项目上线

第一步,项目打包,有两种方式 第一种、直接在项目根目录打开终端,输入以下语句即可。如下图: mvn clean package -DskipTests 第二种、在右侧点击 Maven选项,选择鼠标左键双击package选项即可。如下图: 两…

Python 搭建编程环境

一、搭建编程环境 1、下载python 官网:https://www.python.org 2、开始安装 下载安装版本,双击下载的安装包,如下: 步骤一: 步骤二: 步骤三: 安装完成后执行下面的操作,判断是否…

高教杯数学建模A题程序设计要点与思路

2023 年是我最后一次参加 高教杯大学生数学建模竞赛 以后不会再参加了(大四参加意义不太,研究生有研究生的数学建模大赛) 很遗憾 由于各种原因 我们没有能够完成赛题2022 年 美赛 2022年 Mathor Cup 2022 年国赛 2022 亚太杯 2023年 美赛 202…

面试官:说说Vue 3.0中Treeshaking特性?举例说明一下?

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 一、是什么 二、如何做 Vue2 项目 Vue3 项目 三、作用 一、是什么 Tree shaking 是一种通过清除多余代码方式来…

974. 和可被 K 整除的子数组

974. 和可被 K 整除的子数组 C代码:哈希表前缀和 typedef struct{int val;int cnt;UT_hash_handle hh; } HashTable;int subarraysDivByK(int* nums, int numsSize, int k){HashTable* head NULL;HashTable* out NULL;int sum 0;int cnt 0;out (HashTable*)ma…

Nginx 的优化思路有哪些?网站的防盗链如何做?附图文说明和完整代码步骤

Nginx 的优化思路有哪些?网站的防盗链如何做?实际工作中有哪些类似的安全经验?通过代码实践一步一步实现,附图文说明和完整代码步骤 实验拓扑图: 实验步骤 1、在Centos01上安装Nginx,设置网站根目录/www使用域名www.huhu.com访问 2、在Centos02上安装DNS使用域名访问Ce…

嵌入式Linux--进程间通讯--消息队列

1.需要知道的问题: 1、如何创建消息队列(A\B使用同一个队列通信) 2、如何加消息到队列(队列是链表) 3、如何从队列拿到消息 消息队列: 消息队列,是消息的链接表,存放在内核中。一个…

C#不通过byte[],直接对内存映射文件复制内存

背景 多个进程直接需要传递大量图片,所以对性能要求较高。支付复制内存显然比转成byte[]再复制优越。 命名空间 using System; using System.Diagnostics; using System.Runtime.InteropServices; 代码 public CMainTestForm() { InitializeCo…

【数据结构】二叉树的前序遍历(七)

题目:二叉树的前序遍历 题目详情:给你二叉树的根节点 root ,返回它节点值的 前序 遍历; 我们先来看几个示例: 输入:root [ 1,null,2,3 ] 输出:[ 1&#xf…

爬虫 — Js 逆向案例二微信公众平台登录

目标网站:https://mp.weixin.qq.com/ 需求:找到密码加密的过程,进行加密 案例分析 1、抓到向服务器发请求的数据包,输入错误的账号和密码 2、找到加密字段 pwd 如果 Search 里面数据太多,也可以在 Initiator 里面查找…

LVS+Haproxy

LVSHaproxy 一、Haproxy简介1.1、Haproxy应用分析1.2、Haproxy的特性1.3、常见负载均衡策略1.4、LVS、Haproxy、Nginx区别1.5、 Haproxy的优点1.6、常见的Web集群调度器 二、Haproxy部署实例四、日志定义优化 一、Haproxy简介 Haproxy 是一个使用C语言编写的自由及开放源代码软…