Unable to query a local variable in pandas 0.14.0

pandas, python

Solution

Seems a bug in 0.14, specifically with strings (works eg with ints). I filed an issue here: https://github.com/pydata/pandas/issues/7300. As a workaround for now, you can wrap it in a list:

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

Problem

I can query an explicit value: ``` fills.query('Symbol=="BUD US"') ``` Now I want to query a variable: ``` In [40]: my_symbol Out[40]: 'BUD US' ``` In pandas 0.13.1, I could simply use: ``` fills.query('Symbol==my_symbol') ``` This is no longer permitted in pandas 0.14.0 because local variables must be referred to explicitly. So I tried ``` fills.query('Symbol==@my_symbol') ``` but this returned an error ``` KeyError: '__pd_eval_local_my_symbol' ``` I was able to change some of my other code to use explicit local variables, but this one just will not take. Any thoughts? The dtype is `object`, if that helps.

Original source