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

Pandas Groupby如何筛选同时存在两个color子组并取black的最大计数值

解决方案

你得到的groupdf是带三级索引(索引层级依次为id、group、color)的Series,值为对应分组的计数结果,直接基于该对象操作即可,两步实现需求:

步骤1:筛选同时包含white、black的(id, group)组

对前两级索引分组,过滤出color索引同时包含两个目标值的组:

filtered = groupdf.groupby(level=['id', 'group']).filter(
    lambda x: {'white', 'black'}.issubset(x.index.get_level_values('color'))
)

运行后会自动剔除只有单种颜色的(id, group)组,示例中的(i1, aa)、(i1, ac)、(i2, bb)、(i2, ad)都会被过滤。

步骤2:提取black值并按id取最大值

从过滤结果中只提取color为black的计数,再按id分组取最大值:

result = filtered.xs('black', level='color').groupby(level='id').max()

最终输出的result和你预期的格式完全一致:

id
i1    5
i2    6
dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:00:04