Maison  >  Article  >  développement back-end  >  Comment sélectionner des lignes avec une valeur minimale dans une colonne spécifique après GroupBy dans Pandas ?

Comment sélectionner des lignes avec une valeur minimale dans une colonne spécifique après GroupBy dans Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 03:20:30336parcourir

How to Select Rows with Minimum Value in a Specific Column After GroupBy in Pandas?

Pandas GroupBy et sélection de lignes avec une valeur minimale dans une colonne spécifique

Lorsque vous travaillez avec Pandas DataFrames, il est souvent nécessaire de regrouper les données par certaines colonnes et d'effectuer des opérations sur celles-ci. groupes. Une opération courante consiste à sélectionner les lignes avec la valeur minimale dans une colonne spécifique.

Dans cet article, nous explorerons une approche simple et efficace pour réaliser cette tâche sans recourir à MultiIndex.

Énoncé du problème :

Étant donné un DataFrame avec les colonnes A, B et C, notre objectif est de sélectionner la ligne avec la valeur minimale dans la colonne B pour chaque valeur de la colonne A.

DataFrame d'origine :

A B C
1 4 3
1 5 4
1 2 10
2 7 2
2 4 4
2 6 6

Sortie souhaitée :

A B C
1 2 10
2 4 4

Solution :

La clé pour résoudre ce problème réside dans la méthode idxmin() de Pandas. Cette méthode renvoie l'index de la ligne avec la valeur minimale dans une colonne spécifiée pour chaque groupe.

En utilisant groupby() et idxmin(), nous pouvons sélectionner directement les lignes que nous voulons :

<code class="python"># Group the DataFrame by column 'A'
grouped = df.groupby('A')

# Get the index of the rows with the minimum value in column 'B' for each group
min_idx = grouped.B.idxmin()

# Use the index to select the desired rows
result = df.loc[min_idx]</code>

Sortie :

   A  B   C
2  1  2  10
4  2  4   4

Cette approche sélectionne efficacement les lignes avec la valeur minimale dans la colonne B pour chaque groupe de A, sans avoir besoin de structures de données complexes ou d'étapes intermédiaires.

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