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

Mary-Kate Olsen
Libérer: 2024-11-16 11:35:03
original
151 Les gens l'ont consulté

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')
Copier après la connexion

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()])
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal