我有一个多索引数据框,其中包含级别' 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年。
提前谢谢。
答案 0 :(得分:1)
如何使用groupby
和filter
:
df.groupby(level=0).filter(
lambda df:np.in1d([2001, 2002], df.index.get_level_values(1)).all()
)