2013-02-06 145 views
47

我有一張熊貓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 

我想所有的數據和C列在第1組降序排列索引,所以我的結果如下排序:

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到索引端?

回答

64

當通過多指標排序,你需要包含描述列表*裏面列的元組:

In [11]: df.sort([('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 

* 以免大熊貓迷惑,以爲你想先通過組別進行排序,然後用C 。

+0

謝謝,正是我在找的東西。 – MattB

+0

嗯。比我更快,也是更好的解決方案。 – DSM

+0

@DSM [我能說什麼](http://en.wikipedia.org/wiki/The_Typing_of_the_Dead)? :D –