0

0

使用Pandas检测DataFrame行对匹配并标记通过/失败

碧海醫心

碧海醫心

发布时间:2025-10-25 13:08:01

|

388人浏览过

|

来源于php中文网

原创

使用pandas检测dataframe行对匹配并标记通过/失败

本文详细介绍了如何使用Pandas在DataFrame中检测成对行的匹配情况,并根据匹配结果添加“通过”或“失败”状态列。文章提供了两种核心方法:针对顺序配对的直接逐对比较法,以及基于内容匹配的`pd.merge`方法,并附有示例代码、注意事项及最佳实践,旨在帮助用户高效处理数据匹配与结果标记任务。

在数据处理和质量控制中,经常需要比较数据集中成对的记录,以判断它们是否符合特定的匹配条件。例如,一个“源”记录可能需要与其对应的“目标”记录进行比较,以验证数据的一致性。本文将探讨如何利用Pandas库在DataFrame中高效地实现这一需求,并根据匹配结果添加一个“结果”列(Pass/Fail)。

1. 问题描述与示例数据

假设我们有一个DataFrame,其中包含一系列“源”(Source)和“目标”(Target)记录。这些记录是成对出现的,即每一行“源”数据后面紧跟着其对应的“目标”数据。我们需要比较每一对记录中指定列的值,如果所有指定列都匹配,则将该“源”记录标记为“通过”(Pass);否则标记为“失败”(Fail)。“目标”记录的“结果”列则留空。

以下是示例数据结构:

GradPen论文
GradPen论文

GradPen是一款AI论文智能助手,深度融合DeepSeek,为您的学术之路保驾护航,祝您写作顺利!

下载
Obs | Dataset | Col1 | Col2 | Col3
----------------------------------
1   | Source  | A    | 10   | X
2   | Target  | A    | 10   | X
3   | Source  | B    | 20   | Y
4   | Target  | B    | 20   | Y
5   | Source  | C    | 30   | Z
6   | Target  | D    | 30   | Z

期望的输出格式如下,其中“Result”列作为第三列:

Obs | Dataset | Result | Col1 | Col2 | Col3
--------------------------------------------
1   | Source  | Pass   | A    | 10   | X
2   | Target  |        | A    | 10   | X
3   | Source  | Pass   | B    | 20   | Y
4   | Target  |        | B    | 20   | Y
5   | Source  | Fail   | C    | 30   | Z
6   | Target  |        | D    | 30   | Z

2. 数据准备

首先,我们创建上述示例DataFrame:

import pandas as pd

data = {
    'Obs': [1, 2, 3, 4, 5, 6],
    'Dataset': ['Source', 'Target', 'Source', 'Target', 'Source', 'Target'],
    'Col1': ['A', 'A', 'B', 'B', 'C', 'D'],
    'Col2': [10, 10, 20, 20, 30, 30],
    'Col3': ['X', 'X', 'Y', 'Y', 'Z', 'Z']
}
df = pd.DataFrame(data)

print("原始DataFrame:")
print(df)

3. 方法一:直接逐对比较(推荐用于顺序配对)

这种方法适用于“源”和“目标”记录严格按照顺序成对出现的情况(例如,Obs 1和2是一对,3和4是一对,以此类推)。我们将为每对记录创建一个唯一的标识符,然后对这些组进行比较。

步骤详解:

  1. 创建配对ID: 根据DataFrame的索引(假设索引是0开始且连续,或者根据Obs列)生成一个PairID,使得每对“源”和“目标”记录拥有相同的PairID。
  2. 定义比较列: 明确哪些列需要进行匹配判断。
  3. 按PairID分组并应用函数: 对每个PairID对应的组,提取其“源”和“目标”行,比较指定列的值。
  4. 标记结果: 如果所有比较列都匹配,则将

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

56

2025.12.04

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

183

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

286

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

258

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

124

2025.08.07

treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

538

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

17

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

25

2026.01.06

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号