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

如何在Pandas中筛选update列不含torch2的id与name

解决方法

要实现这个需求,核心是排除所有曾出现过update='torch2'的id对应的所有记录——不是仅过滤update≠'torch2'的行(因为andre和Manuela的id关联过torch2,即便有其他update也需要完全排除)。

以下是两种Pandas实现方式:

方法一:先标记"问题id"再筛选

  1. 先提取所有出现过torch2的id集合:
import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'id': [1,2,3,1,3],
    'name': ['andre', 'paulo', 'Manuela', 'andre', 'Manuela'],
    'update': ['torch2', 'stock_opt', 'length', 'stock', 'torch2']
})

# 获取所有关联过torch2的id
bad_ids = df[df['update'] == 'torch2']['id'].unique()
  1. 筛选id不在上述集合中的记录:
result = df[~df['id'].isin(bad_ids)]

方法二:用分组+变换直接筛选

通过groupby按id分组,用transform检查每组是否包含torch2,再反向筛选:

result = df[~df.groupby('id')['update'].transform(lambda x: (x == 'torch2').any())]

两种方法最终输出的result都符合期望:

id      name       update  
2      paulo       stock_opt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:15:23