367 votes

Trouver la ligne où la valeur de la colonne est maximale dans un DataFrame pandas.

Comment puis-je trouver la ligne pour laquelle la valeur d'une colonne spécifique est maximum ?

df.max() me donnera la valeur maximale pour chaque colonne, je ne sais pas comment obtenir la ligne correspondante.

1 votes

Est-il possible d'obtenir les deux valeurs les plus élevées au lieu de la valeur maximale ?

9 votes

Vous pouvez utiliser sort_values et obtenir l'index : df.sort_values('col', ascending=False)[:2].index

8 votes

Paresseux1 : éviter de trier inutilement une série entière parce que c'est O(N logN) en moyenne, alors que trouver max/idxmax est seulement O(N).

1voto

Jonathan Points 644

Le site idmax du DataFrame renvoie l'index de l'étiquette de la ligne avec la valeur maximale et le comportement de argmax dépend de la version de pandas (actuellement, il renvoie un avertissement). Si vous voulez utiliser le indice de position vous pouvez faire ce qui suit :

max_row = df['A'].values.argmax()

ou

import numpy as np
max_row = np.argmax(df['A'].values)

Notez que si vous utilisez np.argmax(df['A']) se comporte de la même manière que df['A'].argmax() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X