Description
Code:
import pandas as pd
a = {'abc':[1,2,3],'xy (z)':[4,5,6]}
df = pd.DataFrame(a)
query = "`xy (z)` == 2"
new_df = df.query(query)
Error :
xy_(z)_BACKTICK_QUOTED_STRING ==2
SyntaxError: invalid syntax
Problem description
df.query is not able to parse the query where column name of df is not valid python identifier.
Output of pd.show_versions()
commit : None
python : 3.6.8.final.0
python-bits : 64
OS : Linux
OS-release : 4.4.187-1.el7.elrepo.x86_64
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8
pandas : 0.25.1
numpy : 1.17.0
pytz : 2019.2
dateutil : 2.8.0
pip : 18.1
setuptools : 40.6.2
Cython : 0.28.2
pytest : 5.1.2
hypothesis : None
sphinx : None
blosc : None
feather : None
xlsxwriter : 1.0.4
lxml.etree : 4.4.1
html5lib : 1.0.1
pymysql : 0.9.3
psycopg2 : 2.8.3 (dt dec pq3 ext lo64)
jinja2 : None
IPython : None
pandas_datareader: None
bs4 : 4.8.0
bottleneck : None
fastparquet : None
gcsfs : None
lxml.etree : 4.4.1
matplotlib : None
numexpr : None
odfpy : None
openpyxl : 2.6.2
pandas_gbq : None
pyarrow : None
pytables : None
s3fs : None
scipy : 1.1.0
sqlalchemy : 1.3.3
tables : None
xarray : None
xlrd : None
xlwt : None
xlsxwriter : 1.0.4