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

如何在Polars中按列索引选择列并实现分组聚合?

在Polars中按列索引选择列并分组聚合

Polars完全支持按列索引选择列,而且实现分组聚合的方式比Pandas更简洁直观,不需要手动构造字典映射。

针对你的需求(按Common_name分组,对第32到103列求均值),可以用以下两种方式实现:

方式一:直接使用列索引切片聚合

利用Polars的pl.col支持索引切片的特性,直接在聚合操作中指定列范围:

import polars as pl

gb = df.groupby("Common_name").agg(pl.col[32:103].mean())

这里pl.col[32:103]会选中从第32列到第102列(遵循Python左闭右开的切片规则,和Pandas的iloc[:,32:103]范围完全匹配),然后对这些列统一计算均值。

方式二:先获取列名列表再聚合

如果你需要先明确拿到目标列的名称,也可以先通过索引切片提取列名,再逐个指定聚合操作:

cols_to_agg = df.columns[32:103]
gb = df.groupby("Common_name").agg([pl.col(col).mean() for col in cols_to_agg])

这种方式和你Pandas中的实现逻辑更接近,但Polars的列表推导写法比构造字典更简洁。

额外说明

  • Polars的列索引从0开始,和Pandas保持一致,不用担心索引偏移问题。
  • pl.col还支持更多灵活的切片方式,比如pl.col[32:]选中第32列及之后所有列,pl.col[:103]选中前103列,甚至pl.col[::2]选中偶数列,满足不同场景需求。
  • 聚合后的结果会自动保留原列名,和你用Pandas得到的输出结构一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:22:44