Pandas:MultiIndex上的复杂查询

时间:2015-05-06 09:47:00

标签: python pandas multi-index

我有以下DataFrame

data = DataFrame({'k1':['one'] * 3 + ['two'] *4,
              'k2':[1, 1, 2, 3, 3, 4, 4],
              'date': [
                DT.datetime(2013,1,1,14,0),
                DT.datetime(2013,1,1,14,5),
                DT.datetime(2013,1,2,15,0),
                DT.datetime(2013,1,2,10,0),
                DT.datetime(2013,1,3,19,0),                                      
                DT.datetime(2013,1,3,18,0),
                DT.datetime(2013,1,4,16,0)]
                  })
data.set_index(['date','k1', 'k2'], inplace=True)

有谁知道如何查询此MultiIndex以检索2013-01-02之前的所有条目并且k1 ='one'且k2 = 1?

感谢任何帮助

由于

1 个答案:

答案 0 :(得分:0)

您可以使用data.index.get_level_values()过滤multiIndex

>> data.iloc[data.index.get_level_values('k1') == 'one']

仅根据k1过滤索引。要根据k1k2进行过滤,请使用

>> data.iloc[(data.index.get_level_values('k1') == 'one') & (data.index.get_level_values('k2') == 1)]