Maison >développement back-end >Tutoriel Python >Comment supprimer les doublons par colonnes et conserver les lignes avec des valeurs maximales ?

Comment supprimer les doublons par colonnes et conserver les lignes avec des valeurs maximales ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 11:35:03250parcourir

How to Remove Duplicates by Columns and Retain Rows with Maximum Values?

Supprimer les doublons par colonnes et conserver les lignes avec une valeur maximale

Rencontrer des valeurs en double dans des trames de données peut être difficile. Dans un scénario où il est crucial de conserver les lignes avec les valeurs correspondantes les plus élevées, il devient essentiel d'employer des techniques efficaces.

Pour résoudre ce problème, considérons la trame de données suivante avec des doublons dans la colonne A :

A B
1 10
1 20
2 30
2 40
3 10

L'objectif est de supprimer les doublons de la colonne A mais de conserver les lignes avec les valeurs maximales dans la colonne B. Idéalement, le résultat devrait ressembler à ceci :

A B
1 20
2 40
3 10

Une approche consiste à trier le dataframe avant de supprimer les doublons :

df = df.sort_values(by='B', ascending=False)
df.drop_duplicates(subset='A', keep='first')

Cette méthode fonctionne mais ne garantit pas la conservation des valeurs maximales car elle trie les lignes par ordre croissant . Pour surmonter cette limitation, nous pouvons utiliser l'approche suivante :

df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])

Cette opération regroupe le dataframe par colonne A, trouve l'index avec la valeur maximale pour la colonne B et sélectionne la ligne correspondante. Le résultat est une trame de données mise à jour avec les doublons supprimés et les valeurs maximales préservées.

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