Maison  >  Article  >  développement back-end  >  Comment trouver la ligne avec la valeur maximale dans une colonne spécifique d'un Pandas DataFrame ?

Comment trouver la ligne avec la valeur maximale dans une colonne spécifique d'un Pandas DataFrame ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 06:40:02732parcourir

How do you find the row with the maximum value in a specific column of a Pandas DataFrame?

Recherche de valeurs maximales dans les DataFrames Pandas

Dans les pandas, identifier la ligne qui contient la valeur maximale pour une colonne spécifique nécessite une approche simple.

Utilisation pandas.DataFrame.idxmax

La bibliothèque pandas propose la fonction idxmax qui répond directement à ce besoin. Il récupère l'étiquette d'index de la ligne avec la valeur maximale dans une colonne donnée. Prenons l'exemple suivant :

<code class="python">import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5, 3), columns=['A', 'B', 'C'])

print(df)
          A         B         C
0  1.232853 -1.979459 -0.573626
1  0.140767  0.394940  1.068890
2  0.742023  1.343977 -0.579745
3  2.125299 -0.649328 -0.211692
4 -0.187253  1.908618 -1.862934

print(df['A'].idxmax())  # row index with maximum value in column 'A'
print(df['B'].idxmax())  # row index with maximum value in column 'B'
print(df['C'].idxmax())  # row index with maximum value in column 'C'

# Output
3  # row index 3
4  # row index 4
1  # row index 1</code>

Approche alternative utilisant numpy.argmax

Vous pouvez également utiliser numpy.argmax pour obtenir le même résultat. Il renvoie l'index de position plutôt que l'index d'étiquette. Gardez à l'esprit qu'argmax était autrefois appelé idxmax, mais a ensuite été remplacé en faveur de ce dernier.

Contexte historique : étiquettes de lignes par rapport aux indices entiers

Dans Dans les versions antérieures de pandas, les étiquettes de lignes étaient représentées par des indices entiers au lieu d'étiquettes. Cette pratique, bien que désormais obsolète, persistait dans de nombreuses applications couramment utilisées.

Pour s'adapter à l'évolution vers des index de lignes étiquetés, la fonction argmax a été modifiée pour renvoyer l'index de position dans l'index de la ligne contenant le maximum d'éléments. . Ce changement visait à atténuer la confusion résultant de l'utilisation d'index entiers, en particulier dans des situations telles que les étiquettes de ligne en double.

Gestion des étiquettes de ligne en double

Il est crucial de noter que idxmax renvoie étiquettes de ligne, pas des entiers. Dans les cas d'étiquettes de ligne en double, l'utilisation de idxmax devient insuffisante. Pour obtenir l'index de position dans de tels cas, vous devrez peut-être l'extraire manuellement de l'étiquette d'index.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn