使用 AND 的条件查询单行数据帧



使用pandas 0.13,我有一个单行数据框:

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");您已经有结果

您可以做这个

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]

最新更新