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

Python Polars中按条件用计算后的其他列值替换指定列

Polars实现指定条件下的列值替换

需求:当DataFrame中Y列的值为'v'时,将X列的对应值替换为Z列值乘以1.341再乘以15后转换为整数的结果。

对应你熟悉的Pandas实现:

df.loc[df["Y"] == "v", "X"] = (
        df.loc[df["Y"] == "v", "Z"] * 1.341 * 15).astype(int)

在Polars中,基于你已掌握的pl.when().then().otherwise()逻辑,只需把then部分替换为对应的计算式即可,无需嵌套复杂结构,实现代码如下:

df = df.with_columns(
    pl.when(pl.col("Y") == "v")
        .then((pl.col("Z") * 1.341 * 15).cast(pl.Int32))
        .otherwise(pl.col("X"))
        .alias("X")
)

代码说明:

  • pl.when(pl.col("Y") == "v"):指定判断条件,即Y列值为'v'的行
  • .then((pl.col("Z") * 1.341 * 15).cast(pl.Int32)):满足条件时,对Z列执行计算后转换为整数类型(Polars中用cast()替代Pandas的astype())
  • .otherwise(pl.col("X")):不满足条件时保留X列原数值
  • .alias("X"):将处理后的结果命名为原列名,实现原地替换(若要生成新列可修改别名)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:02:46