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

如何在Pandas中筛选所有Run中均存在错误的ID?

修正方案

你的原代码逻辑错误:按Run分组计算Error的唯一值数量,是在筛选每个Run中包含所有Error类型的行,和你要找“所有Run中始终存在错误的ID”的需求不匹配,所以返回了全部数据。

以下是正确的实现方式:

方法一(适用于同一ID-Run下Error值一致的场景)

直接按ID分组,验证该ID在所有行中的Error是否全为True:

# 筛选出所有Run中Error始终为True的ID
valid_ids = all_data_df.groupby('ID')['Error'].all()
valid_ids = valid_ids[valid_ids].index

# 提取这些ID的所有行
df = all_data_df[all_data_df['ID'].isin(valid_ids)]

方法二(更严谨,支持同一ID-Run下Error值混合的场景)

如果同一个ID在同一个Run下既有错误又有正常记录,需要先确保每个Run里该ID至少有一条错误记录,再验证该ID在所有Run中都满足这个条件:

# 先按ID+Run分组,判断每个分组是否存在错误记录
id_run_error = all_data_df.groupby(['ID', 'Run'])['Error'].any()
# 再按ID分组,验证该ID在所有Run中都有错误记录
valid_ids = id_run_error.groupby('ID').all()
valid_ids = valid_ids[valid_ids].index

# 提取符合条件的行
df = all_data_df[all_data_df['ID'].isin(valid_ids)]

以上两种方法都能得到你预期的仅保留ID为234534的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:06:00