Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对以数字开头的列运行Pandas查询(Python 3)_Python_Pandas_Backticks - Fatal编程技术网

对以数字开头的列运行Pandas查询(Python 3)

对以数字开头的列运行Pandas查询(Python 3),python,pandas,backticks,Python,Pandas,Backticks,我试图在一个数据框上运行一个查询,在这个数据框中,我计算一个以数字开头的列的值。大概是这样的: df.query('1A_col == "1000"') df.query('`1A_col` == "1000"') data = {'AB': [1,2,3], '1A_col': [1000,2,3]} df = pd.DataFrame(data) 我读过不少关于如何处理这个问题的文章,一般的解决方案是在列名周围使用反勾号(因为它以数字开头,这将通

我试图在一个数据框上运行一个查询,在这个数据框中,我计算一个以数字开头的列的值。大概是这样的:

df.query('1A_col == "1000"')
df.query('`1A_col` == "1000"')
data = {'AB': [1,2,3], '1A_col': [1000,2,3]}
df = pd.DataFrame(data)
我读过不少关于如何处理这个问题的文章,一般的解决方案是在列名周围使用反勾号(因为它以数字开头,这将通过eval()运行,在Python中,变量名不能以数字开头等等)。所以它应该是这样的:

df.query('1A_col == "1000"')
df.query('`1A_col` == "1000"')
data = {'AB': [1,2,3], '1A_col': [1000,2,3]}
df = pd.DataFrame(data)
但这似乎只适用于3之前的Python版本。自3起,不再支持反勾号。如果我在3中运行它,我会得到一些类似于“BACKTICK\u QUOTED\u STRING\u 1A\u col”的东西,但没有定义

所以,我的问题是-有没有一种方法可以在Python3中实现这一点?如果是,怎么做?此外,我需要使用query(),因为在我的解决方案中,我允许用户将过滤器字符串传递到我的程序中,并有效地为他们执行查询

数据框如下所示:

df.query('1A_col == "1000"')
df.query('`1A_col` == "1000"')
data = {'AB': [1,2,3], '1A_col': [1000,2,3]}
df = pd.DataFrame(data)

我正在使用
python3
Pandas版本1.1

In [1666]: sys.version
Out[1666]: '3.7.3 (default, Apr 24 2020, 18:51:23) \n[Clang 11.0.3 (clang-1103.0.32.62)]'

In [1663]: pd.__version__
Out[1663]: '1.1.0'

In [1664]: df.query('`1A_col` == 1000')
Out[1664]: 
   AB  1A_col
0   1    1000

为了更好地理解,您可以分享一个数据框架的示例吗?@MayankPorwal在python 3.6Hh上添加了一个与pd 1.0.1相同的数据框架示例。。有趣的是,我得到了这个:pandas.core.computation.ops.UndefinedVariableError:name'BACKTICK\u QUOTED\u STRING\u 1A\u col'不是defined@MariuszS您使用的是哪一版本的Python和Pandas?print('Python ver',sys.version)print('Pandas ver',pd.uuu version_uuu)Python ver 3.6.1 | Anaconda 4.4.0(64位)|(默认,2017年5月11日,13:25:24)[MSC v.1900 64位(AMD64)]版本1.0。3@MayankPorwal,我将尝试使用与您相同的版本并更新,谢谢您的帮助