Polars:无需分组调用.agg()实现单行聚合结果的方法
在Polars中无需分组直接执行单行聚合的方法
当然可以不用虚拟列实现单行聚合,Polars提供了两种更简洁的方式:
方法1:使用.select()配合聚合函数
直接在.select()中编写聚合表达式,Polars会将整个数据集作为一个整体计算,返回单行结果:
import polars as pl df = pl.DataFrame({ "a": [1, 2, 3, 4], "b": [10, 20, 30, 40] }) # 计算a列的总和、b列的平均值 agg_result = df.select( pl.col("a").sum().alias("sum_a"), pl.col("b").mean().alias("mean_b") )
执行后agg_result就是包含单行聚合结果的DataFrame。
方法2:直接调用.agg()方法
Polars的DataFrame对象支持直接调用.agg(),传入聚合表达式列表即可,无需提前分组:
agg_result = df.agg([ pl.col("a").sum().alias("sum_a"), pl.col("b").mean().alias("mean_b") ])
这种方式和虚拟分组的效果完全一致,但代码更简洁,性能也更优(避免了虚拟列的创建和分组操作)。
这两种方法都能满足你“返回单行聚合结果”的需求,不用再绕弯子创建虚拟列。
内容的提问来源于stack exchange,提问作者dfried
相关产品推荐
相关产品推荐

