python polars通过除以两个现有列来创建新列



在pandas中,下面通过除以两个现有列在数据帧中创建一个新列。我该如何用波尔斯语做这件事?如果使用polar以最快的方式完成,则会获得额外奖励。LazyFrame

df = pd.DataFrame({"col1":[10,20,30,40,50], "col2":[5,2,10,10,25]})
df["ans"] = df["col1"]/df["col2"]
print(df)

您希望避免Pandas风格的编码,并使用Polars表达式API。表达是Polars的核心,能产生最好的表现。

以下是我们如何使用表达式进行编码,包括使用懒惰模式:

(
df
.lazy()
.with_column(
(pl.col('col1') / pl.col('col2')).alias('result')
)
.collect()
)
shape: (5, 3)
┌──────┬──────┬────────┐
│ col1 ┆ col2 ┆ result │
│ ---  ┆ ---  ┆ ---    │
│ i64  ┆ i64  ┆ f64    │
╞══════╪══════╪════════╡
│ 10   ┆ 5    ┆ 2.0    │
├╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 20   ┆ 2    ┆ 10.0   │
├╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 30   ┆ 10   ┆ 3.0    │
├╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 40   ┆ 10   ┆ 4.0    │
├╌╌╌╌╌╌┼╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤
│ 50   ┆ 25   ┆ 2.0    │
└──────┴──────┴────────┘

以下是《用户指南》的一部分,它可能有助于从Pandas风格的编码过渡到使用Polars表达式。

最新更新