2016-11-17 214 views
1

這裏是我的數據框如何按一列進行分組並對另一列的值進行排序?

import pandas as pd 
df = pd.DataFrame({'A': ['one', 'one', 'two', 'two', 'one'] , 
        'B': ['Ar', 'Br', 'Cr', 'Ar','Ar'] , 
        'C': ['12/15/2011', '11/11/2001', '08/30/2015', '07/3/1999','03/03/2000' ], 
         'D':[1,7,3,4,5]}) 

我的目標是通過組列A和排序中分組結果通過B列。

這裏是我想出了:

sort_group = df.sort_values('B').groupby('A') 

我希望分組操作不會扭曲秩序,但它不工作,也返回不是一個數據幀,但groupby對象

<pandas.core.groupby.DataFrameGroupBy object at 0x0000000008B190B8> 

有什麼建議嗎?

回答

4

你不能直接適用sort_valuesgroupby對象,但你需要一個apply

df.groupby('A').apply(lambda x: x.sort_values('B')) 

爲您提供了所需的輸出:

  A B   C D 
A        
one 0 one Ar 12/15/2011 1 
    4 one Ar 03/03/2000 5 
    1 one Br 11/11/2001 7 
two 3 two Ar 07/3/1999 4 
    2 two Cr 08/30/2015 3 
相關問題