快速对比 找出2个名单不同之处

2024-05-14 10:36
文章标签 快速 对比 找出 名单

本文主要是介绍快速对比 找出2个名单不同之处,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import pandas as pd# 读取两个Excel文件
df1 = pd.read_excel('1.xlsx')
df2 = pd.read_excel('2.xlsx')# 检查两个DataFrame的列是否相同
if list(df1.columns) != list(df2.columns):print("两个Excel文件的列不一致。")print("文件1的列:", df1.columns)print("文件2的列:", df2.columns)
else:# 合并两个DataFrame,并标识差异df_diff = pd.merge(df1, df2, how='outer', on=df1.columns.tolist(), indicator=True)df_diff = df_diff[df_diff['_merge'] != 'both']# 删除_merge列,因为它只是用来标识差异的df_diff = df_diff.drop(columns=['_merge'])# 打印差异if not df_diff.empty:print("两个Excel文件的数据存在差异:")print(df_diff)else:print("两个Excel文件的数据完全相同")

       要对比两张Excel数据表并找出差异,可以使用Python的pandas库。以上是一个示例代码,它会加载两个Excel文件,比较它们的数据,并打印出差异。

       在这个代码中,我们首先检查两个DataFrame的列是否完全相同。如果不相同,我们会输出每个文件的列名称。如果列相同,我们使用pd.merge函数进行外连接(how='outer'),这样就可以找出只在其中一个DataFrame中存在的行。indicator=True参数会添加一个名为_merge的列,用于指示每行数据的来源。然后我们筛选出_merge列不等于both的行,这些行就是差异部分。

       请注意,这个代码假设两个Excel文件的结构相同(即列名和列的顺序相同)。如果文件的结构不同,或者你想要比较的列不同,你可能需要先对DataFrame进行一些预处理来调整它们的结构。

       确保在运行此代码之前已经安装了pandasopenpyxl库。如果没有安装,可以使用以下命令安装:

pip install pandas openpyxl

成果:

这篇关于快速对比 找出2个名单不同之处的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988510

相关文章

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R