pandas根据多指标级别值删除观察值

时间:2015-06-20 06:10:20

标签: python pandas multi-index

我有一个多索引数据框,其中包含级别' id'和'年':

              value    
id      year           
10      2001   100     
        2002   200         
11      2001   110          
12      2001   200     
        2002   300     
13      2002   210

我希望保留2001年和2002年都具有价值的id。这意味着我想获得:

              value    
id      year           
10      2001   100     
        2002   200         
12      2001   200     
        2002   300      

我知道df.loc[df.index.get_level_values('year') == 2002]有效,但我无法将其扩展到2001年和2002年。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

如何使用groupbyfilter

df.groupby(level=0).filter(
    lambda df:np.in1d([2001, 2002], df.index.get_level_values(1)).all()
)