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

Pandas使用Groupby transform筛选含user='abc'的id记录返回空如何解决

错误原因

你之前的写法使用transform('all')的逻辑为:要求同一id分组内的所有记录user字段都等于'abc',才会保留该分组的全部数据。你的数据集内每个id对应一场多用户参与的比赛,没有任何id满足所有参赛用户都是abc,因此返回空结果。

你此前筛选「同id下所有记录都满足duration>120且score>1500」的场景用all是正确的,而当前需求是「同id下只要存在至少一条user为abc的记录就保留整个分组」,需要替换聚合逻辑。

解决方法

将transform('all')替换为transform('any')即可,any()会在分组内有至少一条记录满足条件时,给该分组所有行返回True,完全匹配你的需求。
正确代码如下:

out = df2[(df2['user'].eq('abc')).groupby(df2['id']).transform('any')]

运行后返回的结果包含id=1、id=2的全部4条记录,即abc参与过的两场比赛的所有参赛用户数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:08