如何计算 pandas df 中的表达式以找到两个变量中较大的一个?

问题描述 投票:0回答:1

我想计算一个两列中最大值的值,如下所示:

df = pd.DataFrame( {'a':[1,3,5],
                    'b':[6,4,2] } )

df['c'] = df.eval('maximum(a,b)')

我收到“ValueError:“最大值”不是受支持的函数”。即使我使用

engine='python'
也是如此。令人惊讶的是,因为
maximum
是一个
ufunc
。所需的精确计算必须作为外部字符串提供。 我该怎么办?

eval('maximum(df.a, df.b)') 

确实工作正常,但出于可读性原因我宁愿不这样做。

python pandas eval
1个回答
0
投票
df["C"] = df[["A", "B"]].max(axis=1)

这背后的直觉是,当 axis = 1 时,它会选择水平方向上行的最大值,即 [1, 3 会选择 3 和 6 作为新值,反之亦然。 3, 6] 反之亦然,如果您想在列之间进行选择,则相反

© www.soinside.com 2019 - 2024. All rights reserved.