使用AND'ed条件查询单行DataFrame

时间:2014-01-28 19:29:05

标签: python pandas

使用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]'

这是一个错误吗?有解决办法吗?

1 个答案:

答案 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]