Maison >développement back-end >Tutoriel Python >Comment conserver d'autres colonnes tout en recherchant les minimums dans les DataFrames Pandas groupés ?

Comment conserver d'autres colonnes tout en recherchant les minimums dans les DataFrames Pandas groupés ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 20:29:29611parcourir

How to Keep Other Columns While Finding Minimums in Grouped Pandas DataFrames?

Conserver d'autres colonnes pendant une opération minimale groupée dans Pandas DataFrame

Lors de l'utilisation de la fonction groupby pour regrouper les données par une colonne spécifique et effectuer des opérations d'agrégation comme pour trouver le minimum, d'autres colonnes du DataFrame peuvent être supprimées par inadvertance.

Pour conserver des colonnes supplémentaires tout en effectuant une opération minimale sur une colonne groupée, envisagez les méthodes suivantes :

Méthode 1 : L'utilisation de idxmin()

idxmin() renvoie les indices des valeurs minimales au sein de chaque groupe. En utilisant cela, vous pouvez sélectionner uniquement les lignes souhaitées :

<code class="python">result = df.loc[df.groupby("item")["diff"].idxmin()]</code>

Méthode 2 : Trier et obtenir le premier élément

Vous pouvez également trier la trame de données par la colonne minimale avant d'effectuer l'opération groupby et d'extraire la première ligne de chaque groupe :

<code class="python">result = df.sort_values("diff").groupby("item", as_index=False).first()</code>

Les deux méthodes produiront le résultat souhaité, en conservant la colonne othertuff tout en filtrant les lignes en fonction de la valeur de différence minimale :

   item  diff  otherstuff
0     1     1           2
1     2    -6           2
2     3     0           0

Notez que les indices résultants peuvent varier entre les deux méthodes, bien que le contenu des lignes reste le même.

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