我的多索引 DF 如下:
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
我可以做得更好吗?
一种方法是使用index
method get_level_values()
:
df
col
i1 i2
a c 5
d 6
b c 7
d 8
df[df.index.get_level_values(0).isin(idx_to_keep)]
col
i1 i2
a c 5
d 6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)