熊猫重置多级索引顺序

时间:2020-08-02 21:26:25

标签: python-3.x pandas

我在数据框下方,索引为Letter and Color

                       Value
Letter Color Number       
a      Red   1          97
       Green 1          61
b      Red   1          97
       Green 1          98
c      Red   1          91
       Green 1          47

我正在尝试将其转换为以下内容,

                      Value
Letter Color Number       
a      Red   1          97
       Green 1          61
c      Red   1          91
       Green 1          47
b      Red   1          97
       Green 1          98

到目前为止,我已经尝试过reorder_levels(),但由于它只能在Letter和Color之间交换位置,因此无法正常工作。我要实现的是在索引a,b,c之间交换位置。谁能给个提示。

1 个答案:

答案 0 :(得分:3)

argsort更改为Categorical

df = df.iloc[pd.Categorical(df.index.get_level_values(0),['a','c','b']).argsort()]
Out[191]: 
                     Value
Letter Color Number       
a      Red   1          97
       Green 1          61
c      Red   1          91
       Green 1          47
b      Red   1          97
       Green 1          98