You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Yeah, something going wrong here - most likely the literal being cast to a 32 bit float. Doesn't seem to be a numexpr bug, and works correctly on python 3, PRs welcome!
import numexpr as ne
a, b = 1000000000.0099, 1000000000.006
ne.evaluate('a < %.3f' % b)
Out[57]: array(False, dtype=bool)
pd.eval("a < %.3f" % b)
Out[58]: True
Code Sample, a copy-pastable example if possible
import pandas as pd
df = pd.DataFrame([{"A": 1000000000.0099}])
cutoff = 1000000000.006
local_res = "works" if df.query("A < @cutoff").empty else "fails"
print("query by local var %s" % local_res)
explicit_res = "works" if df.query("A < %.3f" % cutoff).empty else "fails"
print("explicit query %s" % explicit_res)
Expected Output
query by local var works
explicit query fails
output of
pd.show_versions()
INSTALLED VERSIONS
commit: None
python: 2.7.12.final.0
python-bits: 64
OS: Linux
OS-release: 4.2.0-42-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 20.3
Cython: 0.23.4
numpy: 1.11.1
scipy: 0.18.0
statsmodels: 0.6.1
xarray: None
IPython: 5.0.0
sphinx: 1.3.5
patsy: 0.4.1
dateutil: 2.5.1
pytz: 2016.2
blosc: None
bottleneck: 1.1.0
tables: 3.2.3.1
numexpr: 2.6.1
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 0.9.4
xlwt: 1.0.0
xlsxwriter: 0.8.4
lxml: 3.6.0
bs4: 4.4.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.0.13
pymysql: None
psycopg2: 2.6.1 (dt dec pq3 ext)
jinja2: 2.8
boto: 2.39.0
pandas_datareader: None
The text was updated successfully, but these errors were encountered: