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], -
'城市': ['北京', '上海', '广州'] -
}) -
df2 = pd.DataFrame({ -
'姓名': ['赵六', '孙七', '周八'], -
'年龄': [40, 45, 50], -
'城市': ['深圳', '成都', '杭州'] -
}) -
print(df1) -
print(df2)
使用 openpyxl 合并单元格
-
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
# 创建一个新的工作簿 -
wb = Workbook() -
ws = wb.active -
# 将 DataFrame 写入工作表 -
for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
ws.cell(row=r_idx+1, column=c_idx, value=value) -
# 合并单元格 -
ws.merge_cells('A1:B1') # 合并 A1 和 B1 单元格 -
# 保存 Excel 文件 -
wb.save('merged_cells.xlsx')
合并 DataFrame 到不同的工作表
-
import pandas as pd -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
df2 = pd.DataFrame({ -
'姓名': ['赵六', '孙七', '周八'], -
'年龄': [40, 45, 50], -
'城市': ['深圳', '成都', '杭州'] -
}) -
# 合并 DataFrame 到不同的工作表 -
with pd.ExcelWriter('combined_sheets.xlsx', engine='openpyxl') as writer: -
df1.to_excel(writer, sheet_name='Sheet1', index=False) -
df2.to_excel(writer, sheet_name='Sheet2', index=False)
合并多个 Excel 文件
-
import pandas as pd -
# 读取多个 Excel 文件 -
files = ['file1.xlsx', 'file2.xlsx'] -
dfs = [] -
for file in files: -
dfs.append(pd.read_excel(file)) -
# 合并所有 DataFrame -
combined = pd.concat(dfs, ignore_index=True) -
# 保存合并后的数据 -
combined.to_excel('combined_files.xlsx', index=False) -
使用 openpyxl 合并单元格并保留数据 -
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
# 创建一个新的工作簿 -
wb = Workbook() -
ws = wb.active -
# 将 DataFrame 写入工作表 -
for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
ws.cell(row=r_idx+1, column=c_idx, value=value) -
# 合并单元格但保留数据 -
ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2) -
# 保存 Excel 文件 -
wb.save('merged_cells_with_data.xlsx')
合并多个 DataFrame 到不同工作表
-
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
df2 = pd.DataFrame({ -
'姓名': ['赵六', '孙七', '周八'], -
'年龄': [40, 45, 50], -
'城市': ['深圳', '成都', '杭州'] -
}) -
# 创建一个新的工作簿 -
wb = Workbook() -
# 添加不同的工作表 -
ws1 = wb.create_sheet(title='Sheet1') -
ws2 = wb.create_sheet(title='Sheet2') -
# 将 DataFrame 写入不同的工作表 -
for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
ws1.cell(row=r_idx+1, column=c_idx, value=value) -
for r_idx, row in enumerate(dataframe_to_rows(df2, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
ws2.cell(row=r_idx+1, column=c_idx, value=value) -
# 保存 Excel 文件 -
wb.save('multiple_sheets.xlsx')
使用 openpyxl 合并单元格并设置样式
-
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
from openpyxl.styles import Font, Alignment -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
# 创建一个新的工作簿 -
wb = Workbook() -
ws = wb.active -
# 设置字体样式 -
font_style = Font(bold=True, color="FF0000") -
alignment = Alignment(horizontal="center", vertical="center") -
# 将 DataFrame 写入工作表 -
for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
cell = ws.cell(row=r_idx+1, column=c_idx, value=value) -
if r_idx == 0: # 如果是标题行,则设置样式 -
cell.font = font_style -
cell.alignment = alignment -
# 合并单元格并设置样式 -
ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2) -
ws['A1'].font = font_style -
ws['A1'].alignment = alignment -
# 保存 Excel 文件 -
wb.save('merged_cells_with_styles.xlsx')
合并多个 Excel 文件到一个工作簿的不同工作表
-
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
# 读取多个 Excel 文件 -
files = ['file1.xlsx', 'file2.xlsx'] -
dfs = [] -
for file in files: -
dfs.append(pd.read_excel(file)) -
# 创建一个新的工作簿 -
wb = Workbook() -
# 添加不同的工作表并将数据写入 -
for idx, df in enumerate(dfs): -
ws = wb.create_sheet(title=f'Sheet{idx+1}') -
for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
ws.cell(row=r_idx+1, column=c_idx, value=value) -
# 保存 Excel 文件 -
wb.save('combined_files_multiple_sheets.xlsx')
使用 openpyxl 合并单元格并设置条件格式
-
import pandas as pd -
from openpyxl import Workbook -
from openpyxl.utils.dataframe import dataframe_to_rows -
from openpyxl.styles import PatternFill, Font -
from openpyxl.formatting.rule import CellIsRule -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
# 创建一个新的工作簿 -
wb = Workbook() -
ws = wb.active -
# 设置字体样式 -
font_style = Font(bold=True, color="FF0000") -
fill_style = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") -
# 将 DataFrame 写入工作表 -
for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)): -
for c_idx, value in enumerate(row, 1): -
cell = ws.cell(row=r_idx+1, column=c_idx, value=value) -
if r_idx == 0: # 如果是标题行,则设置样式 -
cell.font = font_style -
# 合并单元格 -
ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2) -
# 设置条件格式 -
rule = CellIsRule(operator='equal', formula=['"北京"'], stopIfTrue=True, fill=fill_style) -
ws.conditional_formatting.add('C1:C3', rule) -
# 保存 Excel 文件 -
wb.save('merged_cells_with_conditional_formatting.xlsx')
合并 DataFrame 并去除重复数据
-
import pandas as pd -
# 创建 DataFrame -
df1 = pd.DataFrame({ -
'姓名': ['张三', '李四', '王五'], -
'年龄': [25, 30, 35], -
'城市': ['北京', '上海', '广州'] -
}) -
df2 = pd.DataFrame({ -
'姓名': ['赵六', '孙七', '周八'], -
'年龄': [40, 45, 50], -
'城市': ['深圳', '成都', '杭州'] -
}) -
# 合并 DataFrame -
combined = pd.concat([df1, df2], ignore_index=True) -
# 去除重复数据 -
unique_combined = combined.drop_duplicates() -
# 保存合并后的数据 -
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将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此…...
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 …...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
