我正在尝试使用多索引 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
`
本质上,我想删除多索引中除 first
级别之外的所有其他索引。有没有简单的方法可以做到这一点?
最佳答案
一种方法可能是简单地将 df.index
重新绑定(bind)到 MultiIndex 的所需级别。您可以通过指定要保留的标签名称来执行此操作:
df.index = df.index.get_level_values('first')
或使用级别的整数值:
df.index = df.index.get_level_values(0)
MultiIndex 的所有其他级别都将在这里消失。
关于python - 仅选择多索引 DataFrame 的一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140771/