DataFrame.query gives false positives
Noticing some strange behaviour when using the `query` method. I'm expecting empty results from the query but once in a while I'm getting a non-empty dataframe returned.

``` python
import pandas as pd

testdf = pd.DataFrame(pd.np.random.randint(100, size=(10000, 2)))
testdf.columns = ['a', 'b']

missing_value = -2000
print missing_value in testdf['a'].values
>>>False
```

Doing this 10000 times with using the classical way:

``` python
found_count = 0
for i in xrange(10000):
    qq = testdf[testdf['a']==missing_value]
    if not qq.empty:
        print "Value found"
        found_count += 1
print "Times found: {}".format(found_count)
>>>0
```

Using query:

``` python
found_count = 0
for i in xrange(1000):
    qq = testdf.query('a==-2000')
    if not qq.empty:
        print "Value found"
        found_count += 1
print "Times found: {}".format(found_count)
>>>Value found
>>>Value found
>>>Times found: 2
```

or

``` python
found_count = 0
for i in xrange(1000):
    qq = testdf.query('a==@missing_value')
    if not qq.empty:
        print "Value found"
        found_count += 1
print "Times found: {}".format(found_count)
>>>Value found
>>>Times found: 1
```

The number of non-empty results varies but tends to happen 0.2% of the time. Is this a bug or have I misunderstood what `query` is supposed to to? Version is `0.17.0`.
