我有一个如下的多重索引数据框:
tuples = list(zip(*[['a', 'a', 'b', 'b'], ['c', 'd', 'c', 'd']]))
index = pd.MultiIndex.from_tuples(tuples, names=['i1', 'i2'])
df = pd.DataFrame([5, 6, 7, 8], index=index[:4], columns=['col'])
col
i1 i2
a c 5
d 6
b c 7
d 8
我希望保留那些索引(第0级)在指定范围内的行。
idx_to_keep = ['a']
这应该是一个简单的任务,但我想不出其他方法,除了
idx_to_drop = np.setdiff1d(pd.unique(df.index.levels[0]), idx_to_keep)
df.drop(idx_to_drop, inplace = True)
col
i1 i2
a c 5
d 6
我能做得更好吗?