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

如何基于多列值条件排除数据行?

基于多列条件排除数据行的实现方案

需求说明

需按以下逻辑筛选排除数据行:

  • 第一步:找出ID1列值为rev的所有行
  • 第二步:提取上述行对应的ID2列值(示例中为Ref1),排除所有ID2列等于该值的行

输入数据

ID1     ID2     VALUE
    post    Ref1    12
    post    Ref1    3
    rev     Ref1    12
    rev     Ref1    3
    post    Ref2    10
    post    Ref2    5

期望输出

ID1     ID2     VALUE
    post    Ref2    10
    post    Ref2    5

常用实现方法

Python Pandas 实现

通过两步筛选完成需求:

import pandas as pd

# 构造输入数据
df = pd.DataFrame({
    'ID1': ['post', 'post', 'rev', 'rev', 'post', 'post'],
    'ID2': ['Ref1', 'Ref1', 'Ref1', 'Ref1', 'Ref2', 'Ref2'],
    'VALUE': [12, 3, 12, 3, 10, 5]
})

# 获取需要排除的ID2值集合
exclude_id2 = df[df['ID1'] == 'rev']['ID2'].unique()

# 筛选出ID2不在排除集合中的行
result_df = df[~df['ID2'].isin(exclude_id2)]

print(result_df)

Excel 实现

使用公式结合筛选完成:

  1. 在空白列(如D列)输入公式,判断该行是否保留:
    =IF(COUNTIFS(A:A,"rev",B:B,B2)>0,"排除","保留")
  2. 筛选D列为保留的行,即可得到目标结果

SQL 实现

通过子查询获取需排除的ID2值,再过滤数据:

SELECT *
FROM data_table
WHERE ID2 NOT IN (
    SELECT DISTINCT ID2
    FROM data_table
    WHERE ID1 = 'rev'
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:40:27