TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

PolarsLazyFrame列级相乘的实现方法

2025-11-20
/
0 评论
/
1 阅读
/
正在检测是否收录...
11/20

python
import polars as pl

lf = pl.LazyFrame({
"price": [10.5, 20.0, 15.8],
"quantity": [2, 3, 1]
})

result = lf.withcolumns( (pl.col("price") * pl.col("quantity")).alias("totalcost")
)

这里,pl.col("price") * pl.col("quantity") 构建了一个表达式,表示对 pricequantity 两列进行逐元素相乘。.with_columns() 方法将该表达式的结果作为新列添加到原始框架中。值得注意的是,此时并没有实际的数据计算发生,整个操作仍处于“计划”阶段。

LazyFrame 的强大之处在于它能自动优化这类表达式。例如,如果你只关心 total_cost 这一列,Polars 可以通过列投影优化,仅加载 pricequantity 两列,而忽略其他无关字段,从而节省 I/O 和内存开销。此外,如果后续还有过滤条件(如 .filter(pl.col("total_cost") > 30)),Polars 还可能将过滤操作下推到数据源层面,进一步提升性能。

除了简单的两列相乘,Polars 的表达式系统还支持更复杂的组合。例如,你可以链式地进行多列运算:

python result = lf.with_columns( total=pl.col("price") * pl.col("quantity"), weighted_price=pl.col("price") * pl.lit(0.9) # 乘以常数 )

其中 pl.lit(0.9) 表示一个字面量(literal),可用于与列进行标量乘法。这种灵活性使得 Polars 能够轻松应对各种业务场景下的列运算需求。

数据处理PolarsLazyFrame列相乘表达式计算DataFrame操作
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/38845/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云