2015-04-06 30 views
4

如何對熊貓羣操作應用排序?下面的命令返回一個錯誤,指出「布爾」對象不是可調用應用排序到一個熊貓羣操作

import pandas as pd 

df.groupby('cokey').sort('A') 

cokey  A B 
11168155 18 56 
11168155 0 18 
11168155 56 96 
11168156 96 152 
11168156 0 96 

回答

11

通常,這種排序是在GROUPBY鍵執行,因爲你已經發現了,你不能叫sort一個GROUPBY對象上,是什麼你可以做的是叫apply並通過DataFrame.sort功能並通過列作爲kwarg PARAM:

df.sort('A').groupby('cokey') 
0123:

In [58]: 

df.groupby('cokey').apply(pd.DataFrame.sort, 'A') 
Out[58]: 
       cokey A B 
cokey       
11168155 1 11168155 0 18 
     0 11168155 18 56 
     2 11168155 56 96 
     3 11168155 96 152 

或者你可以只使用df分組之前排序

更新

0.17.0及以上版本DataFrame.sort現在已經過時,看到docs,一個現在應該使用DataFrame.sort_values

df.groupby('cokey').apply(pd.DataFrame.sort_values, 'A') 
+0

的感謝!有沒有辦法reset_index()結果數據框? – user308827

+0

隨後的操作變得混亂,多級索引仍然存在 – user308827

+1

那麼你通過添加這種排序標準來引入另一級索引,你必須在調用'reset_index'後放棄多餘的索引恐怕 – EdChum