基于熊猫系列中的组排序

时间:2015-02-26 13:42:13

标签: python sorting pandas

我想按值的降序(每组)订购一系列(多级)。 例如,以下系列有两个级别(id,company)。

id         company     
86246      10000        841.90        
           10930090      28.44  
           10948797      52.69      
126082871  1076172070     9.99  
           1076211171     4.99  
           1076317676     7.99  
           1078616272     5.00  

是否有任何方法对每个组进行排序(降序),以便得到如下结果?

id          company
86246       10000        841.90
            10948797      52.69
            10930090      28.44
126082871   1076172070     9.99
            1076317676     7.99
            1078616272     5.00
            1076211171     4.99

非常感谢

2 个答案:

答案 0 :(得分:1)

我不确定您的多级索引DataFrame是如何生成的,但假设您有一个扁平的DataFrame df

>>> df
          id     company   value
0      86246       10000  841.90
1      86246    10930090   28.44
2      86246    10948797   52.69
3  126082871  1076172070    9.99
4  126082871  1076211171    4.99
5  126082871  1076317676    7.99
6  126082871  1078616272    5.00

您只需按列value排序,然后使用set_index()创建多级索引:

>>> df.sort_index(by='value', ascending=False).set_index(['id', 'company'])
                       value
id        company           
86246     10000       841.90
          10948797     52.69
          10930090     28.44
126082871 1076172070    9.99
          1076317676    7.99
          1078616272    5.00
          1076211171    4.99

答案 1 :(得分:0)

我认为s.order(ascending=False)可能有效,其中s是持有该系列的变量。