2017-07-06 8 views
2

私はpandasデータフレーム列の最大値をとり、別の列の対応する値を探したいですか?最大値に重複がないと仮定して、常に1つの値だけを返します。例えば、pandasデータフレーム列の最大値を取得し、別の列の対応する値を見つけるにはどうすればよいですか?

GPA ID 
2.3 Tina1 
3.4 Bob1 
3.6 Lia1 
2.9 Tina2 
4.0 Blake1 
4.5 Conor2 

はここで最大GPAは4.5ですが、私は最大GPAのために対応するIDを返すようにしたいので、私はConor2を返します。私はこれを行う方法がわからないので、大いに感謝されるでしょう:)ありがとう!

答えて

2

あなたが

'Conor2' 
を取得

df.loc[df.GPA == df.GPA.max(), 'ID'].values[0] 

を試してみてください、あなたはインデックスちょうど値をしたくない場合は、

5 Conor2 

を取得

df.loc[df.GPA == df.GPA.max(), 'ID'] 

を使用することができます

2

はのはidxmaxを使用してみましょう:

df.set_index('ID').idxmax() 

出力:

GPA Conor2 
dtype: object 

単一の値 'Conor2' がシリーズ。

+0

Ah! idxmax()について考えていませんでした。+1 – Vaishali

+1

@ A-Za-zええ、インデックスの作成にはオーバーヘッドがありますが、インデックスがすでに存在する場合はそれが良い方法です。 –

関連する問題