大熊猫的多指标排序

我有一个熊猫 df 中包含多个索引列的数据集,我想按照特定列中的值进行排序。我尝试过使用 sortindex 和 sortlevel,但是没有得到我想要的结果。我的数据集看起来像:

    Group1    Group2
A B C     A B C
1   1 0 3     2 5 7
2   5 6 9     1 0 0
3   7 0 2     0 3 5

我想按降序对第1组中的所有数据和索引按列 C 进行排序,这样我的结果看起来像:

    Group1    Group2
A B C     A B C
2  5 6 9     1 0 0
1  1 0 3     2 5 7
3  7 0 2     0 3 5

是否可以用我的数据所在的结构进行这种排序,或者我应该将 Group1交换到索引端?

99323 次浏览

When sorting by a MultiIndex you need to contain the tuple describing the column inside a list*:

In [11]: df.sort_values([('Group1', 'C')], ascending=False)
Out[11]:
Group1       Group2
A  B  C      A  B  C
2      5  6  9      1  0  0
1      1  0  3      2  5  7
3      7  0  2      0  3  5

* so as not to confuse pandas into thinking you want to sort first by Group1 then by C.


Note: Originally used .sort since deprecated then removed in 0.20, in favor of .sort_values.