Maison >développement back-end >Tutoriel Python >Comment sélectionner des lignes avec une valeur minimale dans une colonne spécifique après GroupBy dans Pandas ?
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!