我想按值的降序(每组)订购一系列(多级)。 例如,以下系列有两个级别(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
非常感谢
答案 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是持有该系列的变量。