【问题标题】:Pandas: Complex query on MultiIndexPandas:MultiIndex 上的复杂查询
【发布时间】:2015-07-16 09:01:34
【问题描述】:

我有以下数据框

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 的所有条目?

感谢任何帮助

谢谢

【问题讨论】:

    标签: python pandas multi-index


    【解决方案1】:

    你可以使用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)]
    

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 2015-12-16
      • 1970-01-01
      • 2015-08-20
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      相关资源
      最近更新 更多