Python 使用查询函数查询循环中传递的局部变量

Python 使用查询函数查询循环中传递的局部变量,python,pandas,Python,Pandas,我希望能够根据列表中的列名动态查询每个列名。我可以使用@符号在等号的另一侧动态传入,但我确实在尝试动态执行列 import pandas as pd import bumpy as np df = pd.DataFrame(np.random.randn(10, 2), columns=list('ab')) df columns = ['a','b'] for each_column in columns: df.query("@each_column > 1") ##

我希望能够根据列表中的列名动态查询每个列名。我可以使用@符号在等号的另一侧动态传入,但我确实在尝试动态执行列

import pandas as pd
import bumpy as np

df = pd.DataFrame(np.random.randn(10, 2), columns=list('ab'))
df

columns = ['a','b']

for each_column in columns:
    df.query("@each_column > 1")  ## error
IIUC:

动态生成查询:

In [13]: q = ' and '.join('{} > 1'.format(c) for c in df.columns)

In [14]: q
Out[14]: 'a > 1 and b > 1'

In [15]: df.query(q)
Out[15]:
          a         b
7  1.073948  1.348097

即使我们提供了一个字符串供您查询,也不清楚您想要的是什么。您的代码不会产生任何输出。你想要的结果是什么?不完全是我所看到的,但这给了我解决这个问题所需要的东西。谢谢
In [13]: q = ' and '.join('{} > 1'.format(c) for c in df.columns)

In [14]: q
Out[14]: 'a > 1 and b > 1'

In [15]: df.query(q)
Out[15]:
          a         b
7  1.073948  1.348097