将字典值传递到pandas.dataframe.query会重新计算UndefinedVariableError

时间:2017-10-27 20:34:07

标签: python pandas dataframe

我有这样的字典:

dict = {'x':[2,6,4],'y':[56,5,1]}

我想将其中一个列表传递给查询方法:

new_df = df.query('col3 == @dict["x"]')

但我得到一个UndefinedVariableError。有没有办法做我想要的,没有设置新变量的迂回步骤,然后使用“@”与那个

new_v = dict['x']
new_df = df.query('col3 == @new_v')

2 个答案:

答案 0 :(得分:0)

所以你想要类似的东西?

df.query('col3=={}'.format(dict['x']))

答案 1 :(得分:0)

你肯定需要查询功能吗? 否则,在example in the query docs后,您可以尝试以下内容:

df.loc[df['col3'].isin(dict['x'])]

请注意,由于字典返回列表

,可能需要isin