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

分组内pair对过滤:筛选首元素为Code值2的对应数据行

实现逻辑及代码示例

核心逻辑步骤

  • 按Group字段分组,保留组内原始行顺序
  • 每组内生成Code列的上移偏移列(可命名为next_code),此时每行的Code和next_code就组成了相邻pair对
  • 筛选出所有Code == 2的行(即pair首元素为2的首行),同时将这些行对应的下一行也纳入保留集合
  • 对保留的行去重后按原始顺序输出即可

具体实现(Python Pandas 示例)

首先构造输入数据集:

import pandas as pd

# 构造输入数据
data = {
    "Group": [1,1,1,1,2,2,2,2,2,2,2],
    "Code": [2,2,4,1,4,1,2,3,1,1,3]
}
df = pd.DataFrame(data)

执行过滤逻辑:

# 按Group分组,生成每组内的下一行Code值
df["next_code"] = df.groupby("Group")["Code"].shift(-1)
# 筛选符合条件的pair首行
filter_rows = df[df["Code"] == 2]
# 收集要保留的行索引:首行索引 + 首行对应的下一行索引
keep_index = []
for idx in filter_rows.index:
    keep_index.append(idx)
    keep_index.append(idx + 1)
# 去重后按原始索引排序,取对应列输出
result = df.loc[list(set(keep_index))].sort_index()[["Group", "Code"]]
print(result)

运行输出结果和预期完全一致:

Group  Code
0      1     2
1      1     2
2      1     4
6      2     2
7      2     3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:39:05