当前位置: 首页 > news >正文

python Pandas合并(单元格、sheet、excel )

安装 Pandas 和 openpyxl

首先,确保已经安装了 Pandas 和 openpyxl。可以通过 pip 安装:

pip install pandas openpyxl

创建 DataFrame

  1. import pandas as pd

  2. # 创建 DataFrame

  3. df1 = pd.DataFrame({

  4. '姓名': ['张三', '李四', '王五'],

  5. '年龄': [25, 30, 35],

  6. '城市': ['北京', '上海', '广州']

  7. })

  8. df2 = pd.DataFrame({

  9. '姓名': ['赵六', '孙七', '周八'],

  10. '年龄': [40, 45, 50],

  11. '城市': ['深圳', '成都', '杭州']

  12. })

  13. print(df1)

  14. print(df2)

使用 openpyxl 合并单元格

  1. import pandas as pd

  2. from openpyxl import Workbook

  3. from openpyxl.utils.dataframe import dataframe_to_rows

  4. # 创建 DataFrame

  5. df1 = pd.DataFrame({

  6. '姓名': ['张三', '李四', '王五'],

  7. '年龄': [25, 30, 35],

  8. '城市': ['北京', '上海', '广州']

  9. })

  10. # 创建一个新的工作簿

  11. wb = Workbook()

  12. ws = wb.active

  13. # 将 DataFrame 写入工作表

  14. for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

  15. for c_idx, value in enumerate(row, 1):

  16. ws.cell(row=r_idx+1, column=c_idx, value=value)

  17. # 合并单元格

  18. ws.merge_cells('A1:B1') # 合并 A1 和 B1 单元格

  19. # 保存 Excel 文件

  20. wb.save('merged_cells.xlsx')

合并 DataFrame 到不同的工作表

  1. import pandas as pd

  2. # 创建 DataFrame

  3. df1 = pd.DataFrame({

  4. '姓名': ['张三', '李四', '王五'],

  5. '年龄': [25, 30, 35],

  6. '城市': ['北京', '上海', '广州']

  7. })

  8. df2 = pd.DataFrame({

  9. '姓名': ['赵六', '孙七', '周八'],

  10. '年龄': [40, 45, 50],

  11. '城市': ['深圳', '成都', '杭州']

  12. })

  13. # 合并 DataFrame 到不同的工作表

  14. with pd.ExcelWriter('combined_sheets.xlsx', engine='openpyxl') as writer:

  15. df1.to_excel(writer, sheet_name='Sheet1', index=False)

  16. df2.to_excel(writer, sheet_name='Sheet2', index=False)

合并多个 Excel 文件

  1. import pandas as pd

  2. # 读取多个 Excel 文件

  3. files = ['file1.xlsx', 'file2.xlsx']

  4. dfs = []

  5. for file in files:

  6. dfs.append(pd.read_excel(file))

  7. # 合并所有 DataFrame

  8. combined = pd.concat(dfs, ignore_index=True)

  9. # 保存合并后的数据

  10. combined.to_excel('combined_files.xlsx', index=False)

  11. 使用 openpyxl 合并单元格并保留数据

  12. import pandas as pd

  13. from openpyxl import Workbook

  14. from openpyxl.utils.dataframe import dataframe_to_rows

  15. # 创建 DataFrame

  16. df1 = pd.DataFrame({

  17. '姓名': ['张三', '李四', '王五'],

  18. '年龄': [25, 30, 35],

  19. '城市': ['北京', '上海', '广州']

  20. })

  21. # 创建一个新的工作簿

  22. wb = Workbook()

  23. ws = wb.active

  24. # 将 DataFrame 写入工作表

  25. for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

  26. for c_idx, value in enumerate(row, 1):

  27. ws.cell(row=r_idx+1, column=c_idx, value=value)

  28. # 合并单元格但保留数据

  29. ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

  30. # 保存 Excel 文件

  31. wb.save('merged_cells_with_data.xlsx')

合并多个 DataFrame 到不同工作表

  1. import pandas as pd

  2. from openpyxl import Workbook

  3. from openpyxl.utils.dataframe import dataframe_to_rows

  4. # 创建 DataFrame

  5. df1 = pd.DataFrame({

  6. '姓名': ['张三', '李四', '王五'],

  7. '年龄': [25, 30, 35],

  8. '城市': ['北京', '上海', '广州']

  9. })

  10. df2 = pd.DataFrame({

  11. '姓名': ['赵六', '孙七', '周八'],

  12. '年龄': [40, 45, 50],

  13. '城市': ['深圳', '成都', '杭州']

  14. })

  15. # 创建一个新的工作簿

  16. wb = Workbook()

  17. # 添加不同的工作表

  18. ws1 = wb.create_sheet(title='Sheet1')

  19. ws2 = wb.create_sheet(title='Sheet2')

  20. # 将 DataFrame 写入不同的工作表

  21. for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

  22. for c_idx, value in enumerate(row, 1):

  23. ws1.cell(row=r_idx+1, column=c_idx, value=value)

  24. for r_idx, row in enumerate(dataframe_to_rows(df2, index=False, header=True)):

  25. for c_idx, value in enumerate(row, 1):

  26. ws2.cell(row=r_idx+1, column=c_idx, value=value)

  27. # 保存 Excel 文件

  28. wb.save('multiple_sheets.xlsx')

使用 openpyxl 合并单元格并设置样式

  1. import pandas as pd

  2. from openpyxl import Workbook

  3. from openpyxl.utils.dataframe import dataframe_to_rows

  4. from openpyxl.styles import Font, Alignment

  5. # 创建 DataFrame

  6. df1 = pd.DataFrame({

  7. '姓名': ['张三', '李四', '王五'],

  8. '年龄': [25, 30, 35],

  9. '城市': ['北京', '上海', '广州']

  10. })

  11. # 创建一个新的工作簿

  12. wb = Workbook()

  13. ws = wb.active

  14. # 设置字体样式

  15. font_style = Font(bold=True, color="FF0000")

  16. alignment = Alignment(horizontal="center", vertical="center")

  17. # 将 DataFrame 写入工作表

  18. for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

  19. for c_idx, value in enumerate(row, 1):

  20. cell = ws.cell(row=r_idx+1, column=c_idx, value=value)

  21. if r_idx == 0: # 如果是标题行,则设置样式

  22. cell.font = font_style

  23. cell.alignment = alignment

  24. # 合并单元格并设置样式

  25. ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

  26. ws['A1'].font = font_style

  27. ws['A1'].alignment = alignment

  28. # 保存 Excel 文件

  29. wb.save('merged_cells_with_styles.xlsx')

合并多个 Excel 文件到一个工作簿的不同工作表

  1. import pandas as pd

  2. from openpyxl import Workbook

  3. from openpyxl.utils.dataframe import dataframe_to_rows

  4. # 读取多个 Excel 文件

  5. files = ['file1.xlsx', 'file2.xlsx']

  6. dfs = []

  7. for file in files:

  8. dfs.append(pd.read_excel(file))

  9. # 创建一个新的工作簿

  10. wb = Workbook()

  11. # 添加不同的工作表并将数据写入

  12. for idx, df in enumerate(dfs):

  13. ws = wb.create_sheet(title=f'Sheet{idx+1}')

  14. for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True)):

  15. for c_idx, value in enumerate(row, 1):

  16. ws.cell(row=r_idx+1, column=c_idx, value=value)

  17. # 保存 Excel 文件

  18. wb.save('combined_files_multiple_sheets.xlsx')

使用 openpyxl 合并单元格并设置条件格式

  1. import pandas as pd

  2. from openpyxl import Workbook

  3. from openpyxl.utils.dataframe import dataframe_to_rows

  4. from openpyxl.styles import PatternFill, Font

  5. from openpyxl.formatting.rule import CellIsRule

  6. # 创建 DataFrame

  7. df1 = pd.DataFrame({

  8. '姓名': ['张三', '李四', '王五'],

  9. '年龄': [25, 30, 35],

  10. '城市': ['北京', '上海', '广州']

  11. })

  12. # 创建一个新的工作簿

  13. wb = Workbook()

  14. ws = wb.active

  15. # 设置字体样式

  16. font_style = Font(bold=True, color="FF0000")

  17. fill_style = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

  18. # 将 DataFrame 写入工作表

  19. for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

  20. for c_idx, value in enumerate(row, 1):

  21. cell = ws.cell(row=r_idx+1, column=c_idx, value=value)

  22. if r_idx == 0: # 如果是标题行,则设置样式

  23. cell.font = font_style

  24. # 合并单元格

  25. ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

  26. # 设置条件格式

  27. rule = CellIsRule(operator='equal', formula=['"北京"'], stopIfTrue=True, fill=fill_style)

  28. ws.conditional_formatting.add('C1:C3', rule)

  29. # 保存 Excel 文件

  30. wb.save('merged_cells_with_conditional_formatting.xlsx')

合并 DataFrame 并去除重复数据

  1. import pandas as pd

  2. # 创建 DataFrame

  3. df1 = pd.DataFrame({

  4. '姓名': ['张三', '李四', '王五'],

  5. '年龄': [25, 30, 35],

  6. '城市': ['北京', '上海', '广州']

  7. })

  8. df2 = pd.DataFrame({

  9. '姓名': ['赵六', '孙七', '周八'],

  10. '年龄': [40, 45, 50],

  11. '城市': ['深圳', '成都', '杭州']

  12. })

  13. # 合并 DataFrame

  14. combined = pd.concat([df1, df2], ignore_index=True)

  15. # 去除重复数据

  16. unique_combined = combined.drop_duplicates()

  17. # 保存合并后的数据

  18. unique_combined.to_excel('unique_combined_files.xlsx', index=False)

 感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关文章:

python Pandas合并(单元格、sheet、excel )

安装 Pandas 和 openpyxl 首先,确保已经安装了 Pandas 和 openpyxl。可以通过 pip 安装: pip install pandas openpyxl 创建 DataFrame import pandas as pd # 创建 DataFrame df1 pd.DataFrame({ 姓名: [张三, 李四, 王五], 年龄: [25, 30, 35]…...

OJ在线编程常见输入输出练习【JavaScript】

(注:本文是对【JavaScript Node 】 ACM模式,常见输入输出练习相关内容的介绍!!!) 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 一、ACM模式下的编辑页面 二、ACM模式下&a…...

新能源汽车空调系统:绿色出行的舒适保障

在新能源汽车迅速发展的今天,空调系统作为提升驾乘舒适度的重要组成部分,发挥着不可或缺的作用。新能源汽车空调系统主要由压缩机、冷凝器、节流装置和蒸发器四大件组成,它们协同工作,为车内提供适宜的温度和湿度环境。 一、压缩…...

Date工具类详细汇总-Date日期相关方法

# 1024程序员节 | 征文 # 目录 简介 Date工具类单元测试 Date工具类 简介 本文章是个人总结实际工作中常用到的Date工具类,主要包含Java-jdk8以下版本的Date相关使用方法,可以方便的在工作中灵活的应用,在个人工作期间频繁使用这些时间的格…...

TMUX1308PWR规格书 数据手册 具有注入电流控制功能的 5V 双向 8:1单通道和 4:1 双通道多路复用器芯片

TMUX1308 和 TMUX1309 为通用互补金属氧化物半导体 (CMOS) 多路复用器 (MUX)。TMUX1308 是 8:1单通道(单端)多路复用器,而 TMUX1309 是 4:1 双通道(差分)多路复用器。这些器件可在源极 (Sx) 和漏极 (Dx) 引脚上支持从 …...

证件照怎么换底色?简单又快速!不看后悔

一、引言 证件照在我们的生活中有着广泛的应用,无论是求职、考试还是办理各种证件,都需要用到不同底色的证件照。传统的换底色方法往往比较复杂,需要一定的专业技能和软件操作经验。但是现在,有了更简单快捷的方法,让你…...

Rust 基础语法与常用特性

Rust 跨界:全面掌握跨平台应用开发 第一章:快速上手 Rust 1.2 基础语法与常用特性 1.2.1 数据类型与控制流 数据类型 Rust 提供了丰富的内置数据类型,主要分为标量类型和复合类型。 标量类型 标量类型表示单一的值,Rust 中…...

一、开发环境的搭建

环境搭建步骤: 下载软件安装软件运行软件 其他: Visual studio 安装包文件:https://www.alipan.com/s/nd5RgzD4e3b 下载软件 在浏览器中搜索Visual studio,选择如图的选项 点击该区域,进入该页面,【或…...

Docker:存储原理

Docker:存储原理 镜像联合文件系统overlay镜像存储结构容器存储结构 存储卷绑定挂载存储卷结构 镜像 联合文件系统 联合文件系统Union File System是一种分层,轻量且高效的文件系统。其将整个文件系统分为多个层,层与层之间进行覆盖&#x…...

ts:数组的常用方法(push、pop、shift、unshift、splice、slice)

前端css中filter的使用 一、主要内容说明二、例子(一)、push方法(尾添加)1.源码1 (push方法)2.源码1运行效果 (二)、pop方法(尾删除)1.源码2(pop方…...

物联网网关确保设备安全

物联网(IoT)网关在确保设备安全方面扮演着至关重要的角色。 作为连接物联网设备和云端或企业系统的中介,物联网网关可以实施多种安全措施来保护设备和数据。 是物联网网关确保设备安全的关键方法: 1. 设备认证和授权 认证&…...

Vue学习笔记(五)

Class绑定 数据绑定的一个常见需求场景式操纵元素的CSS class列表,因为class是attribute,我们可以和其他attribute一样使用v-bind将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此&#xf…...

Nestjs返回格式小结

在 NestJS 中,除了 text/event-stream(用于 Server-Sent Events)之外,还有多种格式的返回方式,具体取决于你的应用需求。以下是一些常见的返回格式及其示例: 1. JSON 格式 Get(json) getJsonResponse(Res…...

【力扣刷题实战】相同的树

大家好,我是小卡皮巴拉 文章目录 目录 力扣题目: 相同的树 题目描述 示例 1: 示例 2: 示例 3: 解题思路 题目理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉 &#…...

Golang | Leetcode Golang题解之第515题在每个树行中找最大值

题目: 题解: func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …...

Zookeeper 对于 Kafka 的作用是什么?

大家好,我是锋哥。今天分享关于【Zookeeper 对于 Kafka 的作用是什么?】面试题?希望对大家有帮助; Zookeeper 对于 Kafka 的作用是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 在 Kafka…...

Thread类及线程的核心操作

一. Thread类的常见构造方法 1. Thread() Thread类无参的构造方法, 用于创建Thread类的实例对象. 2. Thread(String name) 带一个参数的Thread类构造方法, 创建一个线程对象, 并给其命名. [注]: 如果不专门给线程命名, 那么线程默认的名字就是Thread-0, Thread-1, Thread-…...

算法|牛客网华为机试11-20C++

牛客网华为机试 上篇:算法|牛客网华为机试1-10C 文章目录 HJ11 数字颠倒HJ12 字符串反转HJ13 句子逆序HJ14 字符串排序HJ15 求int型正整数在内存中存储时1的个数HJ16 购物单HJ17 坐标移动HJ18 识别有效的IP地址和掩码并进行分类统计HJ19 简单错误记录HJ20 密码验证…...

OpenAI低调发布多智能体工具Swarm:让多个智能体协同工作!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...

性能之光 年度电竞性能旗舰iQOO 13发布

2024年10月30日,被定义为“性能之光”的年度电竞性能旗舰——iQOO 13正式发布,售价3999元起。iQOO 13作为iQOO 品牌在性能上的又一次深入探索,它像是一束光,引领行业不断拉高性能上限,让用户看到更多的可能性。 iQOO …...

如何避免因不熟悉数据保护法规而受损

在当今数字化时代,数据保护法规的遵守对于企业至关重要。不熟悉新的数据保护法规会导致法律风险增加、财务损失、声誉受损、客户信任下降等多方面的负面影响。其中,法律风险增加尤为严重,因为不符合规定可能引发高额罚款和法律诉讼。企业若未…...

LLaMA Factory 核心原理讲解

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

Java题集练习5

Java题集练习5(集合) 1.三种集合差别,集合类都是什么,数据结构是什么,都什么时候用 三者关系 Set集合 Set接口是Collection接口的一个子接口是无序的,set中不包含重复的元素,也就是说set中不…...

操作系统学习笔记-2.3哲学家和管程问题

哲学家问题 问题描述 假设有五位哲学家围坐在一张圆桌旁,每位哲学家面前放有一盘意大利面,他们各自间隔放置一根叉子。哲学家的行为分为“思考”和“进餐”两种状态。为了进餐,哲学家需要同时拿起左手边和右手边的两根叉子。用餐结束后&…...

2023年信息安全工程师摸底测试卷

目录 1.密码算法 2.等级保护 3.密码学 4.安全评估 5.网络安全控制技术 6.恶意代码 7.身份认证 8.资产管理 9.密码分类 10.被动攻击 11.商用密码服务​编辑 12.超文本传输协议 13.数字水印技术 14.信息系统安全设计 15.重放攻击 16.信息资产保护 17.身份认证 …...

ReactOS系统中平衡二叉树。给定地址超导其所属区块MmFindRegion()

系列文章目录 PMM_REGION NTAPI MmFindRegion( PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address, PVOID* RegionBaseAddress ); 宏函数 //给定地址找到其中所属区块 #define CONTAINING_RECORD(address,type,field) ((type FAR *\(PCHAR)(address)-(PCHAR)(&…...

基于TESSY的单元测试与分类树方法深入解析

在现代软件开发中,单元测试是确保软件质量和可靠性的关键步骤之一。特别是对于嵌入式软件,由于其应用环境的特殊性和高安全性要求,单元测试显得尤为重要。本文将基于《TESSY 用户手册》的内容,详细介绍如何使用TESSY 进行单元测试,并深入探讨分类树方法(Classification T…...

整理了一些大模型的课程,非常详细,大模型零基础入门到精通,收藏我这一篇就够了

目前有多个科普类的大模型课程,这些课程涵盖了从基础理论到实际应用的各个方面。以下是一些主要的科普类大模型课程:复旦大学“大模型开发与赋能”专题讲习班:由复旦大学计算机学院邱锡鹏教授带来的《大模型科普讲解》课程,通过深…...

区块链国赛题目--食品溯源(模块三)

区块链国赛题目–食品溯源(模块三) 任务 3-1:区块链应用前端功能开发 1.请基于前端系统的开发模板,在登录组件 login.js、组件管理文件components.js 中添加对应的逻辑代码,实现对前端的角色选择功能,并测试功 能完整性,示例页面如下: 具体要求如下: (1)有明…...

【Searxng】Searxng docker 安装

SearXNG将用户的查询请求分发至多个支持的搜索引擎,并收集返回的结果进行汇总处理。在这个过程中,它通过内置的过滤器功能屏蔽广告和其他不相关内容,确保搜索结果的纯净度。 一键部署 docker run \--name searxng \-p ????:8080 \-v ~/s…...

如何做照片ppt模板下载网站/定制网站+域名+企业邮箱

2019年5月3日 星期五 补 最后一次,不要再补了! 1.RJ-54端口:在这种端口上通过双绞线连接以太网。 10Base-T的RJ-45端口标志为“ETH”,而100Base-TX的RJ-45端口标志为“10/100bTX”,这是因为快速以太网路由器采用10/100…...

网站建设中/windows优化大师免费

配置项 全局配置项 我们来看下全局配置项有哪些。在学习具体的配置项之前,先来看下pyecharts生成的图由哪几个部分组成。 针对以上每个部分,都有相应的配置项来进行配置。所有的配置类,都是放到pyecharts.options中。 InitOpts:初始化配置项 可以配置诸如图像宽度,高…...

优化网站搜索排名/百度大搜推广开户

目录一、互联网连接(需要联网)二、根据图片地址在app内加载一张图片一、互联网连接(需要联网) 代码 Button btn(Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener( ) {public void onClick(View…...

物流建设网站总结/百度网盘资源搜索

点蓝字关注我们大胆热爱Hello Everybody【火影秘术小课堂】开课了本期的主题【c盘满了怎么办】火粉们赶紧搬好小板凳,准备上课吧1c盘为什么会满在如今这个信息爆炸增长的时代,我们要看的信息越来越多,也就意味着在电脑里有意无意留存的资料也…...

做网站一屏一屏的/厦门百度开户

OOP即Object-Oriented Programming(面向对象程序设计)就是选用面向对象的程序设计语言(Object-Oriented Programming Language,OOPL),采用对象,类及其相关概念所进行的程序设计。 对面向对象的理解本身是无止境的&…...

网站开发 工具/企业培训内容

在短短的一分钟,X浪已经发送了2万条微博,苹X已经下载了4.7万次应用,某宝已经卖出了6万件商品,XX网发生了30万次访问,X度产生了90万次搜索查询——可以看到,在宽带化、移动互联网、物联网、社交网络、云计算…...