Pandas.两极中的评估替换

s5a0g9ez  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(70)

假设我有一个表达式,比如“col3 = col2 + col1”,所以pandas我们可以直接调用pandas. dataframe.eval(),但是在polars中我找不到这样的方法。
我有series.eval在polars,但没有运气,因为我想评估用户给定的表达式的数据框架。

dgsult0t

dgsult0t1#

接收字符串

可以将SQL传递给pl.sql_expr

df = pl.DataFrame({
    "col1": [1, 2],
    "col2": [1, 2],
})
df.select(
    pl.sql_expr("col2 + col1 as col3")
)

字符串
或者你可以运行一个完整的SQL查询:

ctxt = pl.SQLContext(
    frames = {"df": df}
)
ctxt.execute("""
    SELECT col2 + col1 as col3 FROM df
    """,
    eager=True
)

直接接受表达式

我想评估用户在 Dataframe 上给定表达式。
我会直接接受pl.Expression而不是字符串。这提供了比字符串更多的类型安全性,并且可能还提供了更好的用户体验,因为您可以使用自动完成功能,并且IDE可能会显示可用的方法/参数。

相关问题