Python 使用和'查询单行数据帧;附加条件句
使用pandas 0.13,我有一个单行数据帧:Python 使用和'查询单行数据帧;附加条件句,python,pandas,Python,Pandas,使用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 当我使用pandasquer
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
当我使用pandasquery()
方法时,麻烦就来了。一个简单的条件很好:
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]'
这是虫子吗?有解决办法吗?可能是个bug;像这样的布尔运算我认为还没有完全测试过 (对布尔值的评估当然是,例如“值>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]
正如我所写;必须考虑这应该如何/为什么实际起作用。我使用了“here but”和“here but”&”也可以(查询/评估有一个稍微放松的解析)跟进:这在github master中已经修复: