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

如何将Pandas分组求和代码转为Polars?解决GroupBy下标访问报错

解决Polars分组聚合的TypeError问题

错误原因

你遇到的TypeError: 'GroupBy' object is not subscriptable,是因为Polars的GroupBy对象不支持Pandas那种通过下标['列名']选择聚合列的语法,二者分组聚合的写法逻辑存在差异。另外你用到的with_row_index()是用来添加行号列的,和Pandas里reset_index()重置索引的作用完全无关,这里不需要使用它。

正确的Polars代码写法

要实现按hotel_id和people_num分组对total_price求和,Polars有两种常用的正确写法:

写法1:使用agg方法推荐

polars_reserve_tb \
    .group_by(["hotel_id", "people_num"]) \
    .agg(pl.col("total_price").sum())

写法2:使用select方法

polars_reserve_tb \
    .group_by(["hotel_id", "people_num"]) \
    .select(pl.col("total_price").sum())

额外说明

  1. Polars的group_by操作默认会保留所有分组列,且不会将分组列设为索引,因此不需要像Pandas那样额外调用reset_index(),聚合后的结果直接就是包含分组列和聚合结果的DataFrame。
  2. 注意你代码里的变量名拼写错误:polars_researve_tb应该改为polars_reserve_tb少写了字母v。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:20:22