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
相关产品推荐
相关产品推荐

