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

Polars GroupBy对象如何获取分组数?对应Pandas ngroups属性的等效方法

Polars GroupBy 获取分组数的方法(等效 Pandas 的 ngroups 属性)
  • 利用 GroupBy 的 groups 属性
    Polars 的 GroupBy 对象的 groups 属性会返回一个 Series,索引是分组键,值为对应分组的行索引列表。直接取该 Series 的长度即可得到分组数:

    import polars as pl
    
    df = pl.DataFrame({"A": [1, 2, 1, 3, 2], "B": [10, 20, 30, 40, 50]})
    grouped = df.group_by("A")
    group_count = len(grouped.groups)
    print(group_count)  # 输出:3
    
  • 聚合后取结果行数
    分组后执行简单聚合(比如标记分组存在),再取结果的行数,也是常用方式:

    group_count = grouped.agg(pl.lit(1)).height
    # 更简洁的写法:用 len() 聚合
    group_count = grouped.len().height
    
  • 单一分组列的快捷方式
    若仅按单一列分组,可直接取该列的唯一值数量:

    group_count = df["A"].n_unique()
    

    注意:此方法仅适用于单一分组列的场景,多列分组时不适用。

  • 多列分组的处理
    按多列分组时,前两种方法依然有效:

    grouped_multi = df.group_by(["A", "B"])
    # 方法一
    group_count_multi = len(grouped_multi.groups)
    # 方法二
    group_count_multi = grouped_multi.len().height
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:33:12