10")等操作他们工作正常。 但是,当我尝试 df.query("(a + b) / 2 > 10") 时,我注意到,失败了。 幸运的是,当我尝试时df.eva-6ren">
gpt4 book ai didi

python - 我什么时候应该在 Pandas 数据帧上使用 query vs eval?

转载 作者:行者123 更新时间:2023-12-03 19:33:18 24 4
gpt4 key购买 nike

我曾经进行过df.query("a > 10")等操作他们工作正常。

但是,当我尝试 df.query("(a + b) / 2 > 10") 时,我注意到,失败了。

幸运的是,当我尝试时df.eval("(a + b) / 2 > 10") ,它工作正常。

这让我想到了一个问题,是什么让 eval 与查询不同,我们什么时候应该使用一种还是另一种?

最佳答案

df.query 用于获取选定的行(满足条件),df.eval 用于获取每行的 bool 输出。
例如

df123 = pd.DataFrame({'A': range(1, 6),
'B': range(10, 0, -2),
'C C': range(10, 5, -1)})
print(df123)

   A   B  C C
0 1 10 10
1 2 8 9
2 3 6 8
3 4 4 7
4 5 2 6

df123.query('A > B')

A B   C C
4 5 2 6

df123.eval('A > B')

0    False
1 False
2 False
3 False
4 True
dtype: bool


希望这可以帮助!

关于python - 我什么时候应该在 Pandas 数据帧上使用 query vs eval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52228342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com