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

如何在Polars中按分组执行qcut分箱操作?

在Polars中实现按分组的qcut效果

要复现Pandas里按分组执行qcut的功能,Polars可以通过group_by结合transform方法直接实现,以下是具体步骤:

1. 构造测试数据

import polars as pl

df = pl.DataFrame({
    'group': ['a','a','a','a','b','b','b'],
    'col': [1,2,3,4,1,3,2]
})

2. 分组执行qcut

使用group_by指定分组字段,再通过transform将分组内的分箱结果映射回原数据的每一行:

result = df.group_by('group').transform(
    pl.col('col').qcut(q=2, labels=False, allow_duplicates=True)
)

3. 输出结果

执行后得到的结果与Pandas示例完全一致:

shape: (7, 2)
┌───────┬─────┐
│ group ┆ col │
│ ---   ┆ --- │
│ str   ┆ u32 │
╞═══════╪═════╡
│ a     ┆ 0   │
│ a     ┆ 0   │
│ a     ┆ 1   │
│ a     ┆ 1   │
│ b     ┆ 0   │
│ b     ┆ 1   │
│ b     ┆ 0   │
└───────┴─────┘

参数说明

  • q=2:指定分箱的数量,对应Pandasqcut的q参数
  • labels=False:返回整数类型的分箱标签,而非区间字符串
  • allow_duplicates=True:允许组内出现重复分位数的情况(比如组内元素数量为奇数时),避免报错

内容的提问来源于stack exchange,提问作者ℕʘʘḆḽḘ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:43:36