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

Pandas如何筛选col1取值与col2所有取值都存在完整配对的行

实现思路

  1. 先统计col2列所有不重复取值的总个数
  2. 对col1分组后统计每个分组下col2的不重复取值个数
  3. 保留分组内col2不重复个数等于总个数的col1对应的所有行

代码实现

首先导入pandas并构造示例数据:

import pandas as pd
df = pd.DataFrame({'col1':['a','a','b','b','c'],'col2':['x','y','x','y','x']})

方法1:分步实现,可读性更高

# 统计col2唯一值总数量
col2_nunique = df['col2'].nunique()
# 筛选出满足配对要求的col1取值
qualified_col1 = df.groupby('col1')['col2'].nunique().loc[lambda x: x == col2_nunique].index
# 过滤行得到结果
res = df[df['col1'].isin(qualified_col1)]

方法2:用transform一行实现

res = df[df.groupby('col1')['col2'].transform('nunique').eq(df['col2'].nunique())]

输出结果

col1 col2
0    a    x
1    a    y
2    b    x
3    b    y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:36:03