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

如何用Polars的select和alias更高效可读地计算DataFrame行均值?

当然可以,用select()和alias()能让代码更简洁可读,性能也有保障

你的代码可以改写成这样:

import polars as pl

df = pl.DataFrame(
    {
        "nrs": [1, 2, 3, None, 5],
        "names": [1., 2., 3., None, 5],
    }
)

# 用select结合mean_horizontal和alias直接生成目标列
mean_df = df.select(pl.mean_horizontal(['nrs', 'names']).alias('mean'))

为什么这样更好?

  • 可读性提升:
    • 用mean_horizontal明确表示是行方向的均值计算,比axis=1更直观,一眼就能看懂操作意图。
    • 整个逻辑在select操作里完成,直接生成带目标列的DataFrame,不需要额外调用to_frame,代码结构更紧凑。
  • 性能保障:
    • Polars对mean_horizontal这类水平聚合函数做了专门优化,执行效率和df.mean(axis=1)相当,复杂场景下表现更稳定。
    • 减少了中间Series转DataFrame的步骤,避免了不必要的数据转换开销。

如果需要保留原DataFrame的其他列同时新增mean列,也可以用with_columns:

df_with_mean = df.with_columns(pl.mean_horizontal(['nrs', 'names']).alias('mean'))

内容的提问来源于stack exchange,提问作者吴慈霆

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:32:03