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

在Pandas中按分组计算列值乘积并赋值至组内所有行的方法

解决方案:用分组变换实现零件整体合格标记

这其实是个很典型的分组广播需求,用pandas的groupby.transform就能轻松搞定,完全符合你说的按组计算乘积再赋值给所有行的思路:

步骤1:构造示例数据(如果你的数据已经存在可以跳过)

先模拟一下你的DataFrame结构,方便演示效果:

import pandas as pd

data = {
    'part': ['A001', 'A001', 'A002', 'A002', 'A003'],
    'test': ['耐压测试', '导通测试', '耐压测试', '绝缘测试', '功能测试'],
    'test_pass': [1, 1, 1, 0, 1]
}
df = pd.DataFrame(data)

步骤2:核心代码实现需求

直接按part分组,对test_pass列计算乘积,再用transform把结果广播到组内每一行:

df['part_pass'] = df.groupby('part')['test_pass'].transform('prod')

为什么这个方法有效?

  • prod()方法会计算组内所有test_pass的乘积:只要组里有一个0,乘积结果就是0;如果所有测试都通过(全1),乘积结果就是1,完美匹配你需要的part_pass规则。
  • transform()的作用是把分组计算出的单一结果,复制到该组的每一行中,这样同一个零件的所有行都会得到相同的part_pass值。

运行后的结果

执行完代码后,你的DataFrame会变成这样:

parttesttest_passpart_pass
A001耐压测试11
A001导通测试11
A002耐压测试10
A002绝缘测试00
A003功能测试11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:31:45