如何计算表达式内 Polars 中两列的元素最大值?
极地版本 = 0.13.31
问题陈述作为代码:
import polars as pl
import numpy as np
df = pl.DataFrame({
"a": np.arange(5),
"b": np.arange(5)[::-1]
})
# Produce a column with the values [4, 3, 2, 3, 4] using df.select([ ... ]).alias("max(a, b)")
Run Code Online (Sandbox Code Playgroud)
Polars 声称支持 numpy 通用函数(docs),其中包括 np.maximum ,它可以满足我的要求。但是,当我尝试这样做时,出现错误。
df.select([
np.maximum(pl.col("a"), pl.col("b")).alias("max(a, b)")
])
# TypeError: maximum() takes from 2 to 3 positional arguments but 1 were given
Run Code Online (Sandbox Code Playgroud)
似乎没有为此内置的 Polars,pl.max但有,但这仅返回数组中的单个最大元素。
使用.map()
my_df.select([
pl.col(["a", "b"]).map(np.maximum)
])
# PanicException …Run Code Online (Sandbox Code Playgroud)