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

如何在Polars DataFrame中计算指定列列表的行均值?

如何计算Polars DataFrame指定列的行均值?

要计算指定列的行均值,你需要使用Polars中行方向的聚合函数,而非默认的列方向聚合。以下是两种可行方案:

方案1:使用pl.mean_horizontal

这是Polars专门用于行方向均值计算的函数,直接传入目标列名列表即可:

df = pl.DataFrame({
    'a':[1,2,3],
    'b':[4,5,6],
    'c':[7,8,9]
})

cols_to_mean = ['a','c']

# 添加行均值列
result = df.with_columns(row_mean=pl.mean_horizontal(cols_to_mean))
print(result)

输出结果:

shape: (3, 4)
┌─────┬─────┬─────┬──────────┐
│ a   ┆ b   ┆ c   ┆ row_mean │
│ --- ┆ --- ┆ --- ┆ ---      │
│ i64 ┆ i64 ┆ i64 ┆ f64      │
╞═════╪═════╪═════╪══════════╡
│ 1   ┆ 4   ┆ 7   ┆ 4.0      │
│ 2   ┆ 5   ┆ 8   ┆ 5.0      │
│ 3   ┆ 6   ┆ 9   ┆ 6.0      │
└─────┴─────┴─────┴──────────┘

方案2:使用row_mean()方法(Polars 0.17.0+)

针对列表达式,你可以直接调用row_mean()方法实现行方向均值:

result = df.with_columns(row_mean=pl.col(cols_to_mean).row_mean())

为什么之前的方法出错?

  • pl.col(cols_to_mean).mean()默认是列方向聚合,计算的是每列自身的平均值,因此返回单行结果;
  • pl.mean(pl.col(cols_to_mean).mean())逻辑错误,pl.col(cols_to_mean).mean()已经是列的均值(标量或单列),再嵌套pl.mean不仅无意义,还会因参数类型不匹配抛出错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:39