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

如何在Polars DataFrame中按列首行值逐元素进行除法运算?

Polars实现列值相对于首行的转换

核心解法

通过Polars表达式获取每列首行值,再对列内所有元素执行除法运算即可得到目标结果。Polars中除法可直接用/运算符,或调用div()方法(你寻找的divide方法对应Polars里的div())。

完整代码示例

import polars as pl

# 初始化示例DataFrame
df = pl.DataFrame({'a':[3,3,3],'b':[6,6,9]})

# 方式一:使用除法运算符
result = df.with_columns(
    (pl.col("*") / pl.col("*").first()).cast(pl.Float32)
)

# 方式二:使用div()方法
# result = df.with_columns(
#     pl.col("*").div(pl.col("*").first()).cast(pl.Float32)
# )

print(result)

代码说明

  • pl.col("*"):选中所有列,若仅需处理指定列,可替换为列名列表(如["a", "b"])
  • pl.col("*").first():获取每列的第一个元素,Polars会自动将该值广播至整列参与运算
  • /或div():两种方式均实现除法操作,功能完全等价
  • .cast(pl.Float32):将整数结果转换为Float32类型,与示例输出的类型匹配

输出结果

shape: (3, 2)
┌─────┬─────┐
│ a   ┆ b   │
│ --- ┆ --- │
│ f32 ┆ f32 │
╞═════╪═════╡
│ 1.0 ┆ 1.0 │
│ 1.0 ┆ 1.0 │
│ 1.0 ┆ 1.5 │
└─────┴─────┘

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:03:18