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

Pandas如何基于分组聚合结果筛选保留符合条件的整组DataFrame行

更简洁的实现方案

直接使用 pandas 的groupby+transform组合即可完成需求,不需要创建临时中间表,核心逻辑仅需一行代码:

import pandas as pd
import numpy as np

test1 = pd.DataFrame(np.array([[1, 9, 3], [1, 5, 6], [2, 1, 9]]),
                   columns=['a', 'b', 'c'])
# 过滤逻辑
test1 = test1[test1.groupby('a')['b'].transform('sum') > 10]

原理解释

transform方法在分组聚合后,会返回和原DataFrame行数完全对齐的结果,每个a分组的b列总和会被映射到该分组下的所有行上,直接通过布尔索引筛选即可保留所有符合「同a值b总和大于10」要求的整组数据,相比原实现代码更简洁,可读性和执行效率也更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:06