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

Polars中如何按ID分组计算单列求和与两列和的均值?

Polars实现分组聚合:单列求和 + 两列和的均值

直接用Polars的原生分组聚合API就能实现需求,代码简洁且性能更优:

import polars as pl

result = df.group_by("id").agg(
    pl.col("m_1").sum().alias("m_1 sum"),
    (pl.col("m_7") + pl.col("m_8")).mean().alias("m_7_8 mean")
)

说明:

你之前觉得pl.mean只能传列名字符串,其实它可以接收任意Polars表达式(比如两列相加的结果),这也是Polars表达式体系的灵活之处。具体实现逻辑:

  • 先通过group_by("id")完成分组操作,逻辑和Pandas一致
  • 在agg()方法中定义两个聚合规则:
    1. 对m_1列求和,用alias()给结果列指定别名
    2. 先计算m_7与m_8的逐行和,再对这个临时计算结果求均值,最后用alias()命名结果列

这种写法是Polars推荐的原生用法,相比Pandas的apply模式,Polars会提前做查询优化,避免了遍历每组数据执行lambda逻辑的额外开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:18:21