python-比较Excel两列数据,并分别显示差异
利用 openpyxl 模块,操作Excel,比较Excel两列数据,并分别显示差异
表格数据样例如下图
A,B两列是需要进行比较的数据(数据源为某网站公开数据);C,D两列是比较结果的输出列
A,B两列数据大都是通过半角逗号分割的人名,且排序为乱序,最后需要得到 C列:A有B无,D列:A无B有 两列数据
试过用 Beyond Compare,但效果一般;方方格子还有其他的倒是没试过
Python 源码如下
#-*- coding: utf-8 -*-import openpyxldef compare(path):# openpyxl 加载指定表格(操作时,表格需要为关闭状态)wb = openpyxl.load_workbook(path)# 指定需要操作的 表格页面ws = wb['Sheet']# A列数据col_a = []# B列数据col_b = []col_c = []col_d = []# 没有对A,B列中空数据进行特殊处理,如有需要,自行修改# 将A列数据拼接为listfor col in list(ws.columns)[0]:col_a.append(str(col.value))# 将B列数据拼接为listfor col in list(ws.columns)[1]:col_b.append(str(col.value))for i in range (0, len(col_a)):# A有B无s_a = ''# A无B有s_b = ''# 根据指定分隔符对表格内容进行分隔,如有多种分隔符,需要替换成同一种col_c = col_a[i].split(",")col_d = col_b[i].split(",")# 第三列数据为 A有B无for m in range(0, len(col_c)):if col_b[i].find(col_c[m]) == -1:s_a = s_a + col_c[m] + ','ws.cell(i+1, 3).value = s_a #末尾会加上 , 不需要的话,改成 ws.cell(i+1, 3).value = s_a[:-1]# 第四列数据为 A无B有for n in range(0, len(col_d)):if col_a[i].find(col_d[n]) == -1:s_b = s_b + col_d[n] + ','ws.cell(i+1, 4).value = s_b #末尾会加上 , 不需要的话,改成 ws.cell(i+1, 4).value = s_b[:-1]# 保存上述操作,不写这句,表格内容不会保存wb.save(path)def main():# 指定表格路径excel_path = r'.\测试数据.xlsx'compare(excel_path)if __name__ == '__main__':main()
相关文章:

python-比较Excel两列数据,并分别显示差异
利用 openpyxl 模块,操作Excel,比较Excel两列数据,并分别显示差异 表格数据样例如下图 A,B两列是需要进行比较的数据(数据源为某网站公开数据);C,D两列是比较结果的输出列 A&#…...
RT-DETR手把手教程:NEU-DET钢材表面缺陷检测任务 | 不同网络位置加入EMA注意力进行魔改
💡💡💡本文独家改进:本文首先复现了将EMA引入到RT-DETR中,并跟不同模块进行结合创新;1)多种Rep C3结合;2)直接作为注意力机制放在网络不同位置; NEU-DET钢材表面缺陷检测: 原始 rtdetr-r18 map0.5为0.67 rtdetr-r18-EMA_attention map0.5为0.691 rtdetr-r18-…...

WebGL笔记:矩阵缩放的数学原理和实现
矩阵缩放的数学原理 和平移一样,以同样的原理,也可以理解缩放矩阵让向量OA基于原点进行缩放 x方向上缩放:sxy方向上缩放:syz方向上缩放:sz 最终得到向量OB 矩阵缩放的应用 比如我要让顶点在x轴向缩放2,y轴…...

处理器中的TrustZone之安全状态
在这篇博客中,我们将讨论处理器内对TrustZone的支持。其他部分则涵盖了在内存系统中的支持,以及建立在处理器和内存系统支持基础上的软件情况。 3.1 安全状态 在Arm架构中,有两个安全状态:安全状态和非安全状态。这些安全状态映射…...
开发一款短剧视频小程序软件多少钱?
今年最炙手可热的互联网项目之一当属短剧小程序,常常受到客户的咨询,他们想了解开发一套短剧小程序需要多少费用。今天,我将详细介绍相关费用及开发细节。 小程序认证费用: 每年300元,是确保小程序正常运营所必需的认证…...

『PyTorch学习笔记』分布式深度学习训练中的数据并行(DP/DDP) VS 模型并行
分布式深度学习训练中的数据并行(DP/DDP) VS 模型并行 文章目录 一. 介绍二. 并行数据加载2.1. 加载数据步骤2.2. PyTorch 1.0 中的数据加载器(Dataloader) 三. 数据并行3.1. DP(DataParallel)的基本原理3.1.1. 从流程上理解3.1.2. 从模式角度理解3.1.3. 从操作系统角度看3.1.…...

揭秘C语言结构体:通往内存对齐的视觉之旅
揭秘C语言结构体:通往内存对齐的视觉之旅 引言 在C语言的编程旅程中,结构体(structs)是一个关键而强大的概念。结构体不仅允许我们组织和存储不同类型的数据,而且通过深入了解内存对齐,我们可以更好地优化…...
java中可重入锁的作用是什么?
可重入锁的主要作用是允许同一个线程在持有锁的情况下多次进入同步代码块或方法,而不会被阻塞。这样做的主要目的是为了简化编程模型,增强程序的灵活性,并避免死锁的发生。 1. 简化编程模型: 可重入锁使得同一个线程在执行临界区…...

适合炎热天气的最佳葡萄酒有哪些?
每年的夏天,白葡萄酒和玫瑰红葡萄酒总会是葡萄酒爱好者的首选,这是为什么呢?随着春天的逝去,夏天悄悄地到来,空气变得炎热和沉重,树木变得越来越郁郁葱葱,白天的时间更长而晴朗了。多雨的五月变…...

软件工程 课后题 选择 查缺补漏
在一张状态图中只能有一个初态,而终态则可以没有,也可以有多个 所有的对象可以成为各种对象类,每个对象类都定义了一组 方法 通过执行对象的操作可以改变对象的属性,但它必须经过 消息 的传递 UML应用于 基于对象的面向对象的方…...

PyQt基础_011_对话框类控件QMessage
基本功能 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class WinForm( QWidget): def __init__(self): super(WinForm,self).__init__() self.setWindowTitle("QMessageBox") self.resize(300, 100) self.myButt…...

SpringMvc集成开源流量监控、限流、熔断降级、负载保护组件Sentinel | 京东云技术团队
前言:作者查阅了Sentinel官网、51CTO、CSDN、码农家园、博客园等很多技术文章都没有很准确的springmvc集成Sentinel的示例,因此整理了本文,主要介绍SpringMvc集成Sentinel SpringMvc集成Sentinel 一、Sentinel 介绍 随着微服务的流行&…...
[LeetCode] 12. 整数转罗马数字
12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 …...

深入了解Java Period类,对时间段的精确控制
阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概2900多字,预计阅读时间长需要3分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#x…...

企业软件的分类有哪些|app小程序定制开发
企业软件的分类有哪些|app小程序定制开发 企业软件是指为了满足企业运营和管理需求而开发的软件系统。根据不同的功能和应用领域,企业软件可以分为以下几个分类: 1. 企业资源计划(Enterprise Resource Planning,ERP)软…...

选择更好的Notes索引附件方式
大家好,才是真的好。 首先介绍最近产品更新消息。在上一周,HCL主要发布了以下几个产品更新:HCL Verse 3.2.0、HCL Volt MX Go 2.0.2、HCL Domino Rest API 1.0.8。 HCL Verse是今后Domino的产品当中主要使用的webmail功能,这一次…...

Vue混淆与还原
Vue混淆与还原 引言 Vue是一种流行的JavaScript框架,用于构建用户界面。它简单易用且功能强大,备受开发者喜爱。然而,在传输和存储过程中,我们需要保护Vue代码的安全性。混淆是一种有效的保护措施,可以加密和压缩代码…...

R语言单因素方差分析+差异显著字母法标注+逐行详细解释
R语言单因素方差分析 代码如下 df <- read.csv("data.csv",header TRUE,row.names 1) library(reshape2) df <- melt(df,idc()) names(df) <- c(trt, val) df aov1 <- aov(val~trt,datadf) summary(aov1)library(agricolae) data <- LSD.test(aov…...

linux 消息队列apache-activemq服务的安装
1.下载 官网下载地址:https://activemq.apache.org/ 操作如下: 2. 解压 执行:tar -zxvf apache-activemq-5.18.3-bin.tar.gz -C /user/ 3. 进入目录 执行:cd /user/apache-activemq-5.18.3 4.修改配置文件 执行࿱…...
前端数据加密相关问题
什么是数据加密? 数据加密是一种安全性技术,通过使用算法将明文转换为密文,以保护数据的保密性和完整性。数据加密通常用于保护机密信息,例如个人身份、财务信息、企业机密等。在数据传输过程中,数据可以被拦截或窃听…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...