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

如何修改Pandas代码实现基于多条件的ID级score批量标记?

问题解决:根据多条件标记分组内的score值

原代码仅判断了condition2等于'pass'的情况,未覆盖'level_1'这个条件,因此无法对包含level_1的ID(比如示例中的ID B)正确标记所有行的score为1。

你需要将判断条件扩展为同时检查'pass'和'level_1',有两种简洁的修改方式:

方式1:使用isin()方法(推荐,多条件时更简洁)

df['score'] = df.groupby('Id')['condition2'].transform(lambda x: x.isin(['pass', 'level_1']).any().astype(int))

方式2:使用逻辑或(|)连接多个条件

df['score'] = df.groupby('Id')['condition2'].transform(lambda x: (x.eq('pass') | x.eq('level_1')).any().astype(int))

修改说明:

  • 核心是将单一条件判断扩展为包含'pass'和'level_1'的多条件检查
  • any()用于判断当前ID分组内是否存在至少一行符合条件
  • astype(int)将布尔值(True/False)转换为对应的整数1/0

修改后运行代码,就能得到你期望的结果:ID A、B的所有行score标记为1,ID C、D的score保持0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:25:53