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

如何在数据集中找出两列属性值组合相同的所有行?

找出多列属性组合相同的行(大数据集适用方案)

嘿,这个需求太普遍了——手动查小数据集还行,大数据集根本不可能靠人力搞定。我给你用Python的pandas库来演示怎么批量实现,这是处理这类表格数据的首选工具,效率拉满。

先看你提供的示例数据集:

sex   favourite_meal   favourite_color   age   weight(kg)
Tom        M        pizza             red          18       90
Jess       F        lasagna           blue         20       43
Mark       M        pizza             red          30       68
David      M        hamburger         purple       25       70
Lucy       F        sushi             green        18       47

方法一:用分组+筛选快速定位重复组合

这种方法逻辑清晰,适合理解整个过程:

  1. 先把数据导入pandas的DataFrame:
import pandas as pd

# 构造你的示例数据
data = {
    'name': ['Tom', 'Jess', 'Mark', 'David', 'Lucy'],
    'sex': ['M', 'F', 'M', 'M', 'F'],
    'favourite_meal': ['pizza', 'lasagna', 'pizza', 'hamburger', 'sushi'],
    'favourite_color': ['red', 'blue', 'red', 'purple', 'green'],
    'age': [18, 20, 30, 25, 18],
    'weight(kg)': [90, 43, 68, 70, 47]
}

df = pd.DataFrame(data)
  1. 指定你要匹配的列组合(比如sex+favourite_meal),然后找出重复的组合:
# 定义要匹配的列
match_columns = ['sex', 'favourite_meal']

# 统计每个组合的出现次数
group_counts = df.groupby(match_columns).size().reset_index(name='occurrences')

# 筛选出出现次数≥2的组合
duplicate_combinations = group_counts[group_counts['occurrences'] > 1][match_columns]

# 把原数据和重复组合合并,得到所有匹配的行
result = df.merge(duplicate_combinations, on=match_columns, how='inner')

print(result)

运行后你会得到Tom和Mark的行,完美命中需求。

方法二:更简洁的duplicated函数

如果想少写几行代码,直接用pandas的duplicated函数,一步到位:

# 标记所有属于重复组合的行(keep=False表示保留所有重复行,包括第一次出现的)
df['is_duplicate'] = df.duplicated(subset=match_columns, keep=False)

# 筛选出标记为重复的行
result = df[df['is_duplicate']]

print(result)

这个方法和上面的结果完全一致,代码更紧凑,日常用起来更顺手。

大数据集的适配性

这两种方法都能轻松处理几万甚至几百万行的数据——pandas底层用C实现,比纯Python循环快N倍。如果数据集大到内存装不下,还可以用pandas.read_csv的chunksize参数分块处理,或者用Dask这类分布式数据分析库,逻辑和上面的方法基本一致,只是换成分布式计算的接口。

另外,你可以随便调整match_columns里的列,比如改成['sex', 'age'],就能找出性别和年龄相同的行,灵活性拉满。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:40:39