我可以查询一个明确的值:
fills.query('Symbol=="BUD US"')
现在我想查询一个变量:
In [40]: my_symbol
Out[40]: 'BUD US'
在 pandas 0.13.1 中,我可以简单地使用:
fills.query('Symbol==my_symbol')
pandas 0.14.0 不再允许这样做,因为 local variables must be referred to explicitly .所以我尝试了
fills.query('Symbol==@my_symbol')
但这返回了一个错误
KeyError: '__pd_eval_local_my_symbol'
我能够更改我的一些其他代码以使用显式局部变量,但这个代码行不通。有什么想法吗? dtype 是 object
,如果有帮助的话。
最佳答案
似乎是 0.14 中的一个错误,特别是字符串(例如整数)。我在这里提出了一个问题:https://github.com/pydata/pandas/issues/7300 .
作为目前的解决方法,您可以将其包装在列表中:
In [40]: fills
Out[40]:
Price Symbol
0 109.70 BUD US
1 109.72 BUD US
2 183.30 IBM US
3 183.35 IBM US
In [41]: my_symbol = ['BUD US']
In [42]: fills.query('Symbol==@my_symbol')
Out[42]:
Price Symbol
0 109.70 BUD US
1 109.72 BUD US
关于python - 无法查询 Pandas 0.14.0 中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974664/