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

Pandas中指定两列重复且第三列不同时修改Group列0值为1

Pandas 分组修正Group列值实现

处理逻辑

不需要逐行遍历全表,用pandas原生分组操作处理性能更高,判定和修改规则如下:

  • 以SEQUENCE、ID两列的组合值为分组维度拆分全表数据
  • 筛选同时满足两个条件的分组:
    • 组内记录数大于1(即两列组合值存在重复)
    • 组内Group列的取值不唯一(同时存在0、1两种差异值)
  • 对符合条件的分组,将组内所有Group列取值为0的记录统一修改为1;其余分组所有记录取值保持不变

代码实现

import pandas as pd

# 构造示例输入数据
df = pd.DataFrame({
    'SEQUENCE': ['ABCD', 'ABCD', 'BACD'],
    'ID': ['TG', 'TG', 'LK'],
    'Group': [0, 1, 0]
})

# 标记所有需要修正的记录所属分组
group_flag = df.groupby(['SEQUENCE', 'ID'])['Group'].transform(
    lambda col: (len(col) > 1) and (col.nunique() > 1)
)

# 执行值替换
df.loc[group_flag & (df['Group'] == 0), 'Group'] = 1

处理结果

执行代码后输出结果完全匹配预期:

  • SEQUENCE=ABCD、ID=TG的两条重复记录,Group值均更新为1
  • SEQUENCE=BACD、ID=LK的单条无重复记录,Group值保持0不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:27:25