Étant donné un DataFrame Pandas contenant plusieurs colonnes, la tâche consiste à identifier et sélectionnez les lignes avec la valeur minimale dans une colonne spécifique pour chaque valeur unique dans une autre colonne. Par exemple, dans un DataFrame avec les colonnes A, B et C, vous souhaitez récupérer les lignes avec la valeur B minimale pour chaque valeur A.
Une solution simple et Une approche efficace pour résoudre ce problème consiste à utiliser les fonctions groupby et idxmin de Pandas. La fonction groupby regroupe les lignes par une colonne spécifiée, tandis que idxmin renvoie l'index de la ligne avec la valeur minimale dans une autre colonne.
<code class="python">df.loc[df.groupby('A').B.idxmin()]</code>
Cette ligne de code permet d'obtenir le résultat souhaité. Tout d'abord, il utilise groupby('A') pour regrouper le DataFrame par colonne A. Ensuite, il applique la fonction B.idxmin() à chaque groupe, qui renvoie l'index de la ligne avec la valeur B minimale dans ce groupe. Enfin, la fonction loc est utilisée pour sélectionner les lignes correspondant aux valeurs B minimales.
Considérez le DataFrame suivant :
<code class="python">df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2], 'B': [4, 5, 2, 7, 4, 6], 'C': [3, 4, 10, 2, 4, 6]})</code>
L'application du code de la solution produit le résultat suivant :
A B C 2 1 2 10 4 2 4 4
Cette sortie affiche les lignes contenant la valeur B minimale pour chaque valeur A unique (2 pour A=1 et 4 pour A=2).
Comme alternative, vous pouvez utiliser reset_index(drop=True) pour supprimer la colonne d'index du DataFrame résultant :
<code class="python">df.loc[df.groupby('A').B.idxmin()].reset_index(drop=True)</code>
Cela vous donnera un DataFrame avec uniquement les colonnes dont vous avez besoin .
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!