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

按ID分组筛选数据集行:基于下一行值保留指定行

数据集行筛选实现方案

原始数据集

IDValue1Value2
A10
A01
A11
A01
A00
A00
A10
A11
A01

筛选规则

筛选规则:当某行的Value1字段等于1,且其紧邻下一行的Value2字段等于1时,同时保留这两行;其余ID为A的行均不保留。

期望输出结果

IDValue1Value2
A10
A01
A11
A01
A10
A11
A01

实现方法(基于Pandas)

以下是使用Python Pandas库实现该筛选逻辑的代码:

import pandas as pd

# 加载或构造数据集
data = {
    'ID': ['A']*9,
    'Value1': [1,0,1,0,0,0,1,1,0],
    'Value2': [0,1,1,1,0,0,0,1,1]
}
df = pd.DataFrame(data)

# 生成保留标记:当前行是否触发保留条件,下一行是否需要保留
df['keep_current'] = (df['Value1'] == 1) & (df['Value2'].shift(-1) == 1)
df['keep_next'] = df['keep_current'].shift(1).fillna(False)

# 筛选目标行并移除辅助列
result_df = df[df['keep_current'] | df['keep_next']].drop(columns=['keep_current', 'keep_next'])

# 输出结果
print(result_df.to_string(index=False))

代码说明

  • df['Value2'].shift(-1):将Value2列向下偏移一行,获取当前行的下一行Value2值
  • keep_current:标记当前行是否满足触发条件(Value1=1且下一行Value2=1)
  • keep_next:标记当前行是否是上一个触发行的下一行,需要同步保留
  • 最终通过逻辑或筛选出所有需要保留的行,移除辅助列后得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:06:19