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

pandas DataFrame满足条件时同一col1对应的col2行统一赋值方法

实现方法

你可以通过pandas的groupby+transform逻辑实现需求,由于你的col2是0/1二值字段,组内取最大值即可直接满足「只要有1就全组设为1」的规则,写法如下:

import pandas as pd
# 你的原始数据
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'C', 'D', 'D'],
                   'col2': [1,0,1,0,0,1]})
# 核心逻辑:按col1分组后取col2的最大值回填
df['col2'] = df.groupby('col1')['col2'].transform('max')

执行后输出的df就是你期望的结果:

col1col2
A1
A1
B1
C0
D1
D1

通用扩展写法

如果后续你需要适配非二值字段的类似判断需求(只要组内存在任意符合条件的值就全组统一赋值),可以用更灵活的lambda写法:

# 逻辑:判断组内col2是否存在等于1的值,存在则全组设为1,否则设为0
df['col2'] = df.groupby('col1')['col2'].transform(lambda x: 1 if (x==1).any() else 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:45:03