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

标签 python pandas

我曾经进行过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/

相关文章:

python - 如何测试一个变量是否改变? Python

python - 使用 pandas 获取列的当前最大值并输入到新列中

python - 从数据框列表中访问元素的名称

python - 如何从列表中将五个元素组成一组?

python /元素树 : Parsing inline elements w/respect to surrounding text?

python - 给定端口=0时如何确定aiohttp选择哪个端口

python - 如何防止for循环停止?

python-2.7 - 如何根据 Pandas 中两列的时间差创建新列?

Python pandas将列表插入单元格

python - Pandas 在数据框中保留数字列的 int 部分的方法