我正在尝试仅使用来自多索引DataFrame的一个索引来创建新的DataFrame。
A B C first second bar one 0.895717 0.410835 -1.413681 two 0.805244 0.813850 1.607920 baz one -1.206412 0.132003 1.024180 two 2.565646 -0.827317 0.569605 foo one 1.431256 -0.076467 0.875906 two 1.340309 -1.187678 -2.211372 qux one -1.170299 1.130127 0.974466 two -0.226169 -1.436737 -2.006747
理想情况下,我想要这样的事情:
In: df.ix[level="first"]
和:
Out: A B C first bar 0.895717 0.410835 -1.413681 0.805244 0.813850 1.607920 baz -1.206412 0.132003 1.024180 2.565646 -0.827317 0.569605 foo 1.431256 -0.076467 0.875906 1.340309 -1.187678 -2.211372 qux -1.170299 1.130127 0.974466 -0.226169 -1.436737 -2.006747 `
本质上,我想删除除level之外的多索引的所有其他索引first。是否有捷径可寻?
first
一种方法是简单地重新绑定df.index到所需的MultiIndex级别。您可以通过指定要保留的标签名称来做到这一点:
df.index
df.index = df.index.get_level_values('first')
或使用级别的整数值:
df.index = df.index.get_level_values(0)
MultiIndex的所有其他级别将在此处消失。