Python 直接进行多索引排序

Python 直接进行多索引排序,python,sorting,pandas,dataframe,multi-index,Python,Sorting,Pandas,Dataframe,Multi Index,我问了这个问题:作为后续,我想改进一点,直接使用多个索引执行排序: 这是一个示例df df = pd.DataFrame({'modelName':['model1','model1', 'model2', 'model2'], 'scoringValue':[7,8,9,7]}) 这将导致以下概述 overview = df.groupby([df.modelName]).describe().unstack(fill_value=0).

我问了这个问题:作为后续,我想改进一点,直接使用多个索引执行排序:

这是一个示例df

df = pd.DataFrame({'modelName':['model1','model1', 'model2', 'model2'],
                           'scoringValue':[7,8,9,7]})
这将导致以下概述

overview = df.groupby([df.modelName]).describe().unstack(fill_value=0).loc[:, pd.IndexSlice[:, ['mean','std']]]
print(overview)

          scoringValue          
                  mean       std
modelName                       
model1             7.5  0.707107
model2             8.0  1.414214
我想按scoringValue的
mean
对模型进行排序,但保留与
std

这可以通过以下方式实现:

overview.columns = ['{0[0]}_{0[1]}'.format(tup) for tup in overview.columns]
overview.sort_values('scoringValue_mean', ascending=False)
但我更愿意直接使用多索引(更好的视觉表现)并得到如下结果:

          scoringValue          
                  mean       std
modelName                       
model2             8.0  1.414214 
model1             7.5  0.707107
那使用什么呢


伟大的再次感谢你。@GeorgHeiler,当然!这是一个完美的问题——非常清晰且完全可复制(包括python代码)——干得好!:)
In [77]: overview.sort_index(level=1, ascending=0)
Out[77]:
          scoringValue
                  mean       std
modelName
model2             8.0  1.414214
model1             7.5  0.707107