You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Pandas DataFrame中两两分组的行是否列值完全相同

检查DataFrame两两分组行是否完全相同

示例DataFrame

先构造示例数据:

import pandas as pd
df = pd.DataFrame([[1,2], [9,0],[3,4], [3,4]], columns=list('AB'))

输出的DataFrame如下:

A   B
0   1   2
1   9   0
2   3   4
3   3   4

需求说明

已知DataFrame行数始终为偶数,需将行两两分组(第1行与第2行、第3行与第4行……第n-1行与第n行),检查每组内两行的所有列值是否完全相同。示例中第1-2行(索引0-1)列值不同,第3-4行(索引2-3)列值完全相同。

解决方案

方法1:分组后逐组对比

通过创建分组标识,将每两行划分为一组,再对每组内的两行进行全等判断:

# 生成分组标签,每两行一组
groups = df.index // 2
# 每组内比较两行是否完全相同
group_check = df.groupby(groups).apply(lambda g: g.iloc[0].equals(g.iloc[1]))
print(group_check)

输出结果:

0    False
1     True
dtype: bool

结果中False代表对应组的两行列值不同,True代表两行列值完全一致。

方法2:切片后逐行对比

利用索引切片分别提取偶数行和奇数行,直接逐行比较所有列:

# 提取偶数索引行(第1、3...行)
even_rows = df.iloc[::2]
# 提取奇数索引行(第2、4...行)
odd_rows = df.iloc[1::2]
# 逐组检查两行是否完全相同
group_check = (even_rows.reset_index(drop=True) == odd_rows.reset_index(drop=True)).all(axis=1)
# 重置索引对齐原分组逻辑
group_check.index = even_rows.index // 2
print(group_check)

输出结果:

0    False
1     True
dtype: bool

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:00:48