小编典典

仅选择多索引DataFrame的一个索引

python

我正在尝试仅使用来自多索引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。是否有捷径可寻?


阅读 211

收藏
2020-12-20

共1个答案

小编典典

一种方法是简单地重新绑定df.index到所需的MultiIndex级别。您可以通过指定要保留的标签名称来做到这一点:

df.index = df.index.get_level_values('first')

或使用级别的整数值:

df.index = df.index.get_level_values(0)

MultiIndex的所有其他级别将在此处消失。

2020-12-20