python 合并多个excel文件

使用 openpyxl

思路:

  • 读取n个excel的文件,存储在一个二维数组中,注意需要转置。
  • 将二维数组的数据写入excel。

安装软件:

pip install openpyxl

源代码:

import os
import openpyxl
# 将n个excel文件数据合并到一个excel# 读取n个excel文件数据,并且合并到一个二维数组,每个excel只读取A列,且行数保持一样
def merge(n):data = []for i in range(n):data_file_path = os.path.join('data', f'data{i + 1}.xlsx')# 返回一个workbook数据类型的值workbook = openpyxl.load_workbook(data_file_path)sheet = workbook.active# 取A列数据cell = sheet['A']column = []for j in cell:column.append(j.value)data.append(column)# print(data)# 转置transpose_data = list(map(list, zip(*data)))# print(transpose_data)merge_file_path = os.path.join('data', 'merge.xlsx')save(transpose_data, merge_file_path)# 将二维数据数据保存到excel文件
def save(data, file_path):workbook = openpyxl.Workbook()sheet = workbook.activesheet.title = 'Sheet1'workbook.save(file_path)for row in data:sheet.append(row)workbook.save(file_path)if __name__ == '__main__':merge(10)

效果截图:

在这里插入图片描述

使用 pandas

思路:

  • 读取n个excel的文件,存储在一个二维数组中,注意需要转置。
  • 将二维数组的数据写入excel。

安装软件:

pip install pandas

源代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-import pandas as pd
import os# 将n个excel文件数据合并到一个excel# 读取n个excel文件数据,并且合并到一个二维数组,每个excel只读取A列,且行数保持一样
def merge(n):data = []for i in range(n):data_file_path = os.path.join('data', f'data{i + 1}.xlsx')df = pd.read_excel(data_file_path, index_col=None, header=None, sheet_name='Sheet1')# 仅获取第0列数据data.append(df.values[:, 0])# print(data)# 转置transpose_data = list(map(list, zip(*data)))# print(transpose_data)merge_file_path = os.path.join('data', 'merge.xlsx')save(transpose_data, merge_file_path)# 将二维数据数据保存到excel文件
def save(data, file_path):df = pd.DataFrame(data)# 写入本地excel文件df.to_excel(file_path, sheet_name="Sheet1", index=False, header=False)# main函数
if __name__ == '__main__':merge(10)

参考

  • https://zhuanlan.zhihu.com/p/353669230
  • https://blog.csdn.net/weixin_44288604/article/details/120731317
  • https://zhuanlan.zhihu.com/p/363810440
  • https://baijiahao.baidu.com/s?id=1737230506657192730&wfr=spider&for=pc
  • 二维数组转置

源代码位置:

  • 源代码-openpyxl
  • 源代码-pandas
  • github地址

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

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

相关文章

Android SystemServer中Service的创建和启动方式(基于Android13)

Android SystemServer创建和启动方式(基于Android13) SystemServer 简介 Android System Server是Android框架的核心组件,运行在system_server进程中,拥有system权限。它在Android系统中扮演重要角色,提供服务管理和通信。 system …

一个.NET开发的Web版Redis管理工具

今天给大家推荐一款web 版的Redis可视化工具WebRedisManager,即可以作为单机的web 版的Redis可视化工具来使用,也可以挂在服务器上多人管理使用的web 版的Redis可视化工具。 WebRedisManager基于SAEA.Socket通信框架中的SAEA.RedisSocket、SAEA.WebApi两…

【100天精通python】Day23:正则表达式,基本语法与re模块详解示例

目录 专栏导读 1 正则表达式概述 2 正则表达式语法 2.1 正则表达式语法元素 2.2 正则表达式的分组操作 3 re 模块详解与示例 4 正则表达式修饰符 专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 1 正则表达式概述 python 的…

Prometheus + Grafana安装

Prometheus是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做…

并查集维护额外信息,算法思路类似前缀和,结构类似扑克接龙

一、链接 240. 食物链 二、题目 动物王国中有三类动物 A,B,CA,B,C,这三类动物的食物链构成了有趣的环形。 AA 吃 BB,BB 吃 CC,CC 吃 AA。 现有 NN 个动物,以 1∼N1∼N 编号。 每个动物都是 A,B,CA,B,C 中的一种,…

总结950

7:00起床 7:30~8:00复习单词300个,记忆100个 8:10~9:30数学660,只做了10道题,发现对各知识点的掌握程度不一。有些熟练,有些生疏 9:33~10:25计算机网络课程1h 10:32~12:02继续660,也不知道做了几道 2:32~4:00数据…

12.物联网操作系统之多任务核心

一。列表及列表项概念以及应用 1.freeRTOS列表介绍 列表项都是由链表生成,想要了解列表项,首先应该把上述的链表都要搞懂。 这是列表项的组件列表。 2.列表及列表项的定义 列表是双向链表构成,原因是双向链表的插入与删除效率高&#xff0c…

【Spring】使用注解的方式获取Bean对象(对象装配)

目录 一、了解对象装配 1、属性注入 1.1、属性注入的优缺点分析 2、setter注入 2.1、setter注入的优缺点分析 3、构造方法注入 3.1、构造方法注入的优缺点 二、Resource注解 三、综合练习 上一个博客中,我们了解了使用注解快速的将对象存储到Spring中&#x…

Android:自己写一个简单记事本

一、前言:我的app是点击加号跳转到另一个界面 那么我遇到的问题的是点击加号是一个从一个Fragment跳转到另一个Fragment跳转失败。 二、解决方案: //相应控件的监听里面实现跳转FragmentManager fragmentManagergetFragmentManager();fragmentManager.b…

网络可靠性之链路聚合

网络的可靠性 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力网络的可靠性是可以从单板、设备、链路多个层面实现。 链路聚合 以太网链路聚合: 通过将多个物理接口捆绑成为一个逻辑接口,可以再不进行硬件升级的条件下&a…

css滚动条样式指南

css滚动条样式指南 滚动条是网页设计中经常被忽视的元素。虽然它看起来像是一个小细节,但它在网站导航中起着至关重要的作用。默认的滚动条可能看起来不合适,有损整体美观。本文将介绍如何使用 CSS 自定义滚动条。 在 Chrome、Edge 和 Safari 中设置滚…

基于Azure OpenAI Service 的知识库搭建实验⼿册

1.概要 介绍如何使⽤Azure OpenAI Service 的嵌⼊技术,创建知识库;以及创建必要的资源组和资源,包括 Form Recognizer 资源和 Azure 翻译器资源。在创建问答机器⼈服务时,需要使⽤已部署模型的 Azure OpenAI 资源、已存在的…

SAP-MM-发票校验的重复校验功能

路径:SPRO-物料管理-后勤发票校验-收入发票-设置重复发票检查 按公司代码设置重复检查,可以按三个方式进行检查,公司代码、参照、发票日期,如果此处未维护就是按供应商(XK02)的六项进行检查 但是如果两处都…

深入学习 Redis - 事务、实现原理、指令使用及场景

目录 一、Redis 事务 vs MySQL事务 二、Redis 事务的执行原理 2.1、执行原理 2.2、Redis 事务设计这么简单,为什么不涉及成 MySQL 那样强大呢? 三、Redis 事务的使用 3.1、使用场景 3.2、具体演示 开启/执行/放弃事务 watch 监控 watch 实现原理…

chapter14:springboot与安全

Spring Boot与安全视频 Spring Security, shiro等安全框架。主要功能是”认证“和”授权“,或者说是访问控制。 认证(Authentication)是建立在一个声明主体的过程(一个主体一般指用户,设备或一些可以在你的应用程序中…

Django之JWT库与SimpleJWT库的使用

Django之JWT库与SimpleJWT库的使用 JWTJWT概述头部(header)载荷(payload)签名(signature) Django使用JWT说明jwt库的使用安装依赖库配置settings.py文件配置urls.py文件创建视图配置权限 SimpleJWT库的使用安装SimpleJWT库配置Django项目配置路由创建用户接口测试身份认证自定义…

【雕爷学编程】Arduino动手做(190)---MAX4466声音模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

Jenkins Gerrit Trigger实践

1.创建Gerrit Trigger 2.jenkins master节点生成gerrit用户的密钥 这里的用户名得写登录gerrit后个人信息中的 Username 3.gerrit 配置刚刚jenkins生成密钥的公钥 4.gerrit 用户加入群组 不加这个群组,下一步测试就会报错“User aeshare has no capability conn…

Dueling Network

Dueling Network —— Dueling Network Architectures for Deep Reinforcement Learning 论文下载地址 论文介绍 图9. Dueling Network 模型结果示意图 Dueling Network与传统DQN的区别在于神经网络结构的不同,Dueling Netowrk在传统DQN的基础上只进行了微小的改动…

Flowise AI:用于构建LLM流的拖放UI

推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 什么是Flowise AI? Flowise AI是一个开源的UI可视化工具,用于帮助开发LangChain应用程序。在我们详细介绍 Flowise AI 之前,让我们快速定义 LangChain。LangChain是…