当列名是数字或包含特殊字符时使用query()

时间:2015-08-08 12:31:54

标签: python pandas numexpr

是否可以在pandas中使用查询方法,其中列没有名称或其名称中包含特殊字符?我想使用配置文件中的查询字符串,但对于某些列,这不起作用。我知道valid Python identifiers limitation,但我想知道是否还有其他特殊的关键字,比如索引,我还没有看到

>>>df = pd.DataFrame(np.ones((3,4)))
>>>df['Special:chars'] = [1,2,9]
>>>df

   0  1  2  3  Special:chars
0  1  1  1  1              1
1  1  1  1  1              2
2  1  1  1  1              9

>>>df.query('index in [0,2]') #the only working query I was able to find

   0  1  2  3  Special:chars
0  1  1  1  1              1
2  1  1  1  1              9

>>>df.query('0<2')
KeyError: True

>>>df.query('"0"<2')
TypeError: data type "" not understood

>>>df.query('Special:chars >=2')
    Special :chars >=2
            ^
SyntaxError: invalid syntax

>>>df.query('"Special:chars" >=2')
data type "Special:chars" not understood

0 个答案:

没有答案