小编Chu*_*els的帖子

我可以使用类似 pandas 的字符串表达式来过滤 DataFrame 吗?

我正在考虑在一个允许用户输入谓词表达式来过滤/子集数据行的工具中pandas替换我的使用。polars这允许用户使用该pandas.DataFrame.query方法可以解析的表达式,例如"x > 1",作为一个非常简单的示例。

但是,我似乎找不到一种方法来使用相同类型的字符串表达式,以便我可以在不要求用户更改其谓词表达式的情况下polars.DataFrame.filter进行交换。pandaspolars

我发现的唯一接近我的问题的是这个帖子:String as a condition in a filter

不幸的是,这并不是我所需要的,因为它仍然需要一个字符串表达式,"pl.col('x') > 1"而不是简单的"x > 1".

有没有办法使用更简单(“不可知”)的语法polars

使用文档中的示例polars.DataFrame.filter

>>> df = pl.DataFrame(
...     {
...         "foo": [1, 2, 3],
...         "bar": [6, 7, 8],
...         "ham": ["a", "b", "c"],
...     }
... )
Run Code Online (Sandbox Code Playgroud)

调用时df.filter,我被迫使用如下表达式:

pl.col("foo") < 3
(pl.col("foo") < 3) & (pl.col("ham") == "a")
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够分别使用以下字符串表达式,以便该工具的用户(当前使用 …

python-polars

3
推荐指数
1
解决办法
614
查看次数

标签 统计

python-polars ×1