2017-06-17 5 views
3

を見せながら、私は次のようにデータセットを持っている:GROUPBY列の他の列

name | $ | letter 
adam, 34, c 
beny, 45, e 
adam, 55, a 
beny, 87, t 

私はそれぞれの文字で、それぞれの名前から寄贈された最大$を抽出したいと思います。 アダムのために、私は得るでしょう:アダム、55、a。

私が使用している場合:私は、それぞれの手紙を与えるものではありません

df.groupby('name')[['$']].max() 

私が使用している場合:

df.groupby('name')[['$','letter']].max() 

私は最大$とアルファベットで最高の文字を取得します。次いで

答えて

4

最大値のインデックスの使用DataFrameGroupBy.idxmaxlocによって選択:

print (df.groupby('name')['$'].idxmax()) 
name 
adam 2 
beny 3 
Name: $, dtype: int64 

df = df.loc[df.groupby('name')['$'].idxmax()] 
print (df) 
    name $ letter 
2 adam 55  a 
3 beny 87  t 

sort_valuesGroupBy.lastを使用し、次いで第伴う別の溶液:溶液中

df = df.sort_values('$').groupby('name', as_index=False).last() 
print (df) 
    name $ letter 
0 adam 55  a 
1 beny 87  t 

違いは、元のインデックスをせidxmaxであり、 lastそれらをリセットします。

+0

ありがとうございます。それは有り難いです。 –