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

如何用Pandas筛选另一列值相同且指定列属特定集合的行

解决方案

核心思路

直接在原DataFrame上删除同时满足以下两个条件的行:

  • B列的值存在重复(即该B值在列中出现≥2次)
  • 对应行的A列值属于集合{1,2}

步骤与代码

  1. 生成需要删除的行的布尔索引:

    # 标记所有B列值重复的行
    cond_b_dup = df['B'].duplicated(keep=False)
    # 标记A列值属于{1,2}的行
    cond_a_in_set = df['A'].isin({1, 2})
    # 合并条件,得到待删除行的标记
    to_drop = cond_b_dup & cond_a_in_set
    
  2. 在原DataFrame上执行删除操作(inplace=True确保直接修改原数据):

    df.drop(index=df[to_drop].index, inplace=True)
    

示例验证结果

执行代码后,原示例DataFrame会被修改为:

A  B
6  3  d

仅保留了B=d且A=3的行,其余符合删除条件的行均被移除。

通用说明

针对你实际的40列数据集,只需将代码中的A、B替换为对应列名即可,逻辑完全通用。其中duplicated(keep=False)会标记所有重复的B值行,确保重复B组内所有A符合条件的行都被删除。

内容的提问来源于stack exchange,提问作者i.i.k.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:48:17