Maison  >  Article  >  développement back-end  >  Comment sélectionner efficacement des lignes avec des valeurs de colonne minimales dans les Pandas DataFrames ?

Comment sélectionner efficacement des lignes avec des valeurs de colonne minimales dans les Pandas DataFrames ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 17:36:02360parcourir

How to Efficiently Select Rows with Minimum Column Values in Pandas DataFrames?

Pandas GroupBy et sélection efficace de lignes avec des valeurs de colonne minimales

Lorsque vous travaillez avec Pandas DataFrames, la sélection de lignes en fonction de valeurs de colonne spécifiques est une pratique courante tâche. Dans le scénario où vous devez extraire des lignes avec la valeur minimale dans une colonne particulière, il existe un moyen simple et efficace d'y parvenir.

Pour illustrer, considérons le DataFrame suivant :

df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2],
                   'B': [4, 5, 2, 7, 4, 6],
                   'C': [3, 4, 10, 2, 4, 6]})

Pour sélectionner les lignes avec la valeur minimale dans la colonne B pour chaque valeur de A, nous pouvons utiliser les méthodes groupby et idxmin :

minimum_rows = df.loc[df.groupby('A').B.idxmin()]

Cette opération regroupe le DataFrame par colonne A et identifie l'index de la ligne avec la valeur minimale dans la colonne B pour chaque groupe. La méthode loc extrait ensuite ces lignes pour créer le DataFrame minimum_rows.

   A  B   C
2  1  2  10
4  2  4   4

Si vous souhaitez réinitialiser l'index pour garantir des entiers consécutifs, vous pouvez utiliser la méthode reset_index :

minimum_rows.reset_index(drop=True)

   A  B   C
0  1  2  10
1  2  4   4

En tirant parti des méthodes groupby et idxmin, vous disposez d'une approche efficace pour sélectionner les lignes avec la valeur minimale dans une colonne spécifiée, sans avoir besoin de MultiIndex ou d'opérations complexes.

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