excel比较两列差异性和一致性,统计之后降序排列

2024-09-03 11:52

本文主要是介绍excel比较两列差异性和一致性,统计之后降序排列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import pandas as pd
import numpy as np# 读取Excel文件
file_path = 'last-all.xlsx'
df = pd.read_excel(file_path)# 指定要比较的列名
column1 = '标注'
column2 = '不含72b'# 将两列内容尝试转换为数字,无法转换的标记为 NaN
df[column1 + '_num'] = pd.to_numeric(df[column1], errors='coerce')
df[column2 + '_num'] = pd.to_numeric(df[column2], errors='coerce')# 比较数字列的内容是否一致,非数字内容标记为 NaN
differences = df[column1 + '_num'] != df[column2 + '_num']# 找出不一致的部分及其行号
diff_df = df[differences].copy()
diff_df['差异'] = df[column1].astype(str) + ' → ' + df[column2].astype(str)# 统计每类不一致的部分及其比例
diff_counts = diff_df['差异'].value_counts()
diff_percentages = (diff_counts / len(diff_df)) * 100
# 打印一共有多少条不一样的结果
total_differences = len(diff_df)
total_rows = len(df)
percentage_differences = (total_differences / total_rows) * 100
#打印一致性
print(f"一致性为 {(1 - percentage_differences / 100):.2f}")
print(f"\n一共有 {total_differences} 条不一样的结果,占总数的比例为 {percentage_differences:.2f}%。")# 打印统计结果
print("每类不一致的部分占比 (从高到低排序):")
for diff, percentage in zip(diff_counts.index, diff_percentages):print(f"{diff}: {percentage:.2f}%")# 打印不一致部分及行号
# print("\n不一致部分的详细信息 (行号: 标注列 → 不含列):")
# for index, row in diff_df.iterrows():
#     print(f"行号 {index}: {row['差异']}")# 输出nan出现的行号
nan_rows = diff_df[(diff_df[column1 + '_num'].isna()) | (diff_df[column2 + '_num'].isna())]
if not nan_rows.empty:print("\n含有nan的行号:")for index in nan_rows.index:print(f"行号 {index}")
else:print("\n没有含有nan的行。")

一致性

在这个代码基础上追加功能:比较column2那一列和column1相比一致性最高的类别,并打印类别和一致比例

import pandas as pd
import numpy as np# 读取Excel文件
file_path = 'last-all.xlsx'
df = pd.read_excel(file_path)# 指定要比较的列名
column1 = '标注'
column2 = '不含72b'# 将两列内容尝试转换为数字,无法转换的标记为 NaN
df[column1 + '_num'] = pd.to_numeric(df[column1], errors='coerce')
df[column2 + '_num'] = pd.to_numeric(df[column2], errors='coerce')# 比较数字列的内容是否一致,非数字内容标记为 NaN
differences = df[column1 + '_num'] != df[column2 + '_num']# 找出不一致的部分及其行号
diff_df = df[differences].copy()
diff_df['差异'] = df[column1].astype(str) + ' → ' + df[column2].astype(str)# 统计每类不一致的部分及其比例
diff_counts = diff_df['差异'].value_counts()
diff_percentages = (diff_counts / len(diff_df)) * 100# 计算总体一致性
total_differences = len(diff_df)
total_rows = len(df)
percentage_differences = (total_differences / total_rows) * 100
consistency = (1 - percentage_differences / 100)
print(f"一致性为 {consistency:.2f}")
print(f"\n一共有 {total_differences} 条不一样的结果,占总数的比例为 {percentage_differences:.2f}%。")# 打印统计结果
print("每类不一致的部分占比 (从高到低排序):")
for diff, percentage in zip(diff_counts.index, diff_percentages):print(f"{diff}: {percentage:.2f}%")# 找出column2中与column1相比一致性最高的类别
df['一致'] = df[column1 + '_num'] == df[column2 + '_num']
consistency_by_category = df[df['一致']].groupby(column2).size()# 计算每个类别的总体比例(占column2中的比例)
total_by_category = df.groupby(column2).size()
highest_consistency_category = (consistency_by_category / total_by_category).idxmax()
highest_consistency_percentage = (consistency_by_category / total_by_category).max() * 100# 打印一致性最高的类别及其比例
print(f"\n在 {column2} 列中,与 {column1} 列相比一致性最高的类别是 '{highest_consistency_category}',一致比例为 {highest_consistency_percentage:.2f}%。")

这篇关于excel比较两列差异性和一致性,统计之后降序排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

Java利用Spire.XLS for Java设置Excel表格边框

《Java利用Spire.XLSforJava设置Excel表格边框》在日常的业务报表和数据处理中,Excel表格的美观性和可读性至关重要,本文将深入探讨如何利用Spire.XLSforJava库... 目录Spire.XLS for Java 简介与安装Maven 依赖配置手动安装 JAR 包核心API介

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报