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

如何对Pandas DataFrame的GroupBy对象跳过前n个组并保留GroupBy类型

如何跳过GroupBy对象的前n个组并保留GroupBy结构

嘿,我来帮你搞定这个问题!你已经用groupby("ID")完成了DataFrame的分组,但可惜GroupBy对象本身不支持像列表那样直接用[n:]切片来跳过前n个组。不过我们可以通过以下方法实现需求,而且能保证结果依然是GroupBy对象:

具体步骤

  1. 获取分组键列表:先提取所有分组的键,这个列表的顺序和原GroupBy对象的分组顺序完全一致
    group_keys = list(df_grouped.groups.keys())
    
  2. 筛选目标分组键:根据你要跳过的前n个组,截取列表中从第n+1个开始的键
    n = 2  # 这里替换成你实际要跳过的组数
    selected_keys = group_keys[n:]
    
  3. 生成新的GroupBy对象:用filter方法筛选出仅包含目标键的分组,得到的结果就是我们需要的GroupBy对象
    df_grouped_skipped = df_grouped.filter(lambda x: x.name in selected_keys)
    

简洁写法

如果你想更紧凑一点,可以把步骤合并成一行代码:

n = 2
df_grouped_skipped = df_grouped.filter(lambda x: x.name in list(df_grouped.groups.keys())[n:])

验证效果

拿你的示例数据来说,执行完上述代码后,df_grouped_skipped.groups.keys()会返回dict_keys([6, 10]),完全符合你的预期。而且这个新对象依然是GroupBy类型,你可以继续对它进行分组后的各种操作(比如聚合、遍历分组等)。

小提醒:如果你的分组是带排序的(比如groupby("ID", sort=True)),那group_keys会是排序后的键列表,跳过前n个组也会按照排序后的顺序来执行哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:37:43