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

如何对Polars DataFrame中的所有行进行聚合操作?

在Polars中对所有行进行聚合操作的方法

如果要对Polars DataFrame的所有行做聚合(比如求某列的平均值),有几种简洁的实现方式:

1. 直接调用列的聚合方法(返回Series)

针对单列聚合,直接选中目标列后调用对应的聚合函数即可,比如求age列的平均值:

import polars as pl

df = pl.DataFrame({
    "first_name": ["Alice", "Bob", "Charlie", "Alice"],
    "age": [25, 30, 35, 28]
})

# 获取age列的平均值,返回Series类型结果
avg_age = df["age"].mean()
print(avg_age)  # 输出:29.5

2. 使用select方法(返回DataFrame)

如果需要返回结构化的DataFrame结果,可以用select配合聚合表达式,还能自定义结果列名:

# 返回包含平均值的单行DataFrame
result_df = df.select(pl.col("age").mean().alias("average_age"))
print(result_df)
# 输出:
# shape: (1, 1)
# ┌─────────────┐
# │ average_age │
# │ ---         │
# │ f64         │
# ╞═════════════╡
# │ 29.5        │
# └─────────────┘

这种方式支持同时聚合多个列,比如同时求平均值和总行数:

multi_agg_df = df.select([
    pl.col("age").mean().alias("average_age"),
    pl.col("age").count().alias("total_records")
])
print(multi_agg_df)

3. 全局分组后聚合(统一分组操作写法)

如果想和常规group_by分组聚合的写法保持一致,可以用无参数的group_by()(将所有行归为一组),再调用agg执行聚合:

grouped_result = df.group_by().agg(pl.col("age").mean().alias("average_age"))
print(grouped_result)
# 输出和select方法的结果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:12:06