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

如何用Polars纯表达式逻辑实现指定字符串处理逻辑?

用纯Polars表达式替代Python Lambda优化字符串处理速度

当然可以用纯Polars表达式实现,完全避免Python逻辑带来的性能损耗,代码如下:

替代方案代码

df = df.with_columns(
    pl.when(pl.col("code").str.lengths() <= 2)
      .then(pl.col("code").str.concat("88"))
      .otherwise(pl.col("code"))
      .alias("code")
)

为什么更快?

  • 原写法里的apply(lambda...)会触发Python层面的逐行处理,涉及频繁的Rust-Python上下文切换,还受GIL限制,数据量越大速度越慢。
  • 纯Polars表达式是在Rust runtime中执行的向量化操作,能充分利用Polars的底层性能优化,处理大规模数据集时效率提升非常明显。

额外说明

如果code列存在空值,可在长度判断里直接处理:

pl.col("code").str.lengths().fill_null(0) <= 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:33:13