2016-11-17 1 views
1

はここ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]}) 

私の目標は、列Bにより、カラムAとソート内でグループ化された結果でグループにある私のデータフレームです。ここで

は私が思い付いたものです:

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

私が操作をグループ化する順序を歪めないであろうと期待していたが、それは動作しませんし、また、データフレームをしませ返しますが、groupbyオブジェクト

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

提案がありますか?

答えて

4

あなたはgroupbyオブジェクトに直接sort_valuesを適用することはできませんが、あなたはapply必要があります。

  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 

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

はあなたに所望の出力を提供します

関連する問題