使用pandas 0.13,我有一个单行DataFrame:
In [23]: is_same
Out[23]:
bid bidsize ask asksize
168 False False False False
[1 rows x 4 columns]
我可以用Python语法查询:
In [24]: is_same.bid & is_same.ask
Out[24]:
168 False
dtype: bool
当我使用pandas query()
方法时出现问题。一个简单的条件很好:
In [25]: is_same.query('bid')
Out[25]:
Empty DataFrame
Columns: [bid, bidsize, ask, asksize]
Index: []
[0 rows x 4 columns]
但是,如果我想像上面那样和我一样的布尔,我会收到一个错误:
In [26]: is_same.query('bid & ask')
...
KeyError: 'the label [False] is not in the [index]'
这是一个错误吗?有解决办法吗?
答案 0 :(得分:3)
可能是一个错误;像这样的布尔处理我不认为已经完全测试过 (当然对布尔值的评价是,例如'值> 0');你已经有了结果
你可以这样做
In [5]: df.query('bid==False and ask==False')
Out[5]:
bid bidsize ask asksize
168 False False False False
[1 rows x 4 columns]
In [6]: df.query('bid==False and ask==True')
Out[6]:
Empty DataFrame
Columns: [bid, bidsize, ask, asksize]
Index: []
[0 rows x 4 columns]