Python 对每个组进行一次多索引排序

Python 对每个组进行一次多索引排序,python,pandas,Python,Pandas,以下是df: 'A' 'B Gain/Expsr% -10.0 2.104000 1.194000 -2.0 1.389000 0.892000 Gain/MaxDD -10.0 0.024000 0.064000 -2.0 0.020000 0.058000 预计产量为: 'A' 'B

以下是df:

                    'A'         'B
Gain/Expsr% -10.0   2.104000    1.194000
            -2.0    1.389000    0.892000

Gain/MaxDD  -10.0   0.024000    0.064000
            -2.0    0.020000    0.058000
预计产量为:

                    'A'         'B
Gain/Expsr%  -2.0   1.389000    0.892000
             -10.0  2.104000    1.194000

Gain/MaxDD  -2.0    0.020000    0.058000
            -10.0   0.024000    0.064000
我尝试过,但收效甚微:

 df.sortlevel(axis=1,level=[1,0],sort_remaining=True)
 df.sort_index(axis=1,level=1,sort_remaining=True)
以及大致如下的内容:

 df.reset_index(level=1,inplace=True)
 df['level_1'] = df['level_1'].values[::-1]
 df.reindex(df, level=0)

让我们尝试使用
升序
作为列表:

df.sort_index(level=[0,1], ascending=[True,True])

                       A      B
Gain/Expsr% -10.0  2.104  1.194
            -2.0   1.389  0.892
Gain/MaxDD  -10.0  0.024  0.064
            -2.0   0.020  0.058


您希望如何对此数据帧进行排序?您的预期输出两个组的排序不同?是的,我不希望级别0发生更改,但每个级别1(在级别0组内)都会反转,这不是您预期的输出显示的内容。Exp是递减的,MaxDD是递增的。哎呀,我会修正的。很抱歉,这两个递减Hanks-不知道可以将递增作为列表传递,但完全有意义的是,你应该能够。是的,我只是演示了不同的排序。:)
df.sort_index(level=[0,1], ascending=[True, False])

                       A      B
Gain/Expsr% -2.0   1.389  0.892
            -10.0  2.104  1.194
Gain/MaxDD  -2.0   0.020  0.058
            -10.0  0.024  0.064