Comment supprimer efficacement les doublons consécutifs dans Pandas ?

Mary-Kate Olsen
Libérer: 2024-11-13 17:29:02
original
569 Les gens l'ont consulté

How to Efficiently Drop Consecutive Duplicates in Pandas?

Suppression efficace des doublons consécutifs dans Pandas

Lorsque vous travaillez avec des DataFrames pandas, il est souvent nécessaire de supprimer les valeurs en double. Cependant, la méthode intégrée drop_duplicates() supprime toutes les instances de valeurs en double, y compris les doublons consécutifs. Pour les cas où seuls les doublons consécutifs doivent être supprimés, il existe des méthodes plus efficaces.

Une approche consiste à utiliser la fonction shift(). En comparant le DataFrame à sa version décalée (a.shift(-1)), un masque booléen peut être créé pour identifier l'endroit où les doublons consécutifs se produisent. Ce masque peut ensuite être utilisé pour sélectionner uniquement les valeurs uniques, comme le montre l'exemple suivant :

a.loc[a.shift(-1) != a]
Copier après la connexion

Une autre méthode utilise la fonction diff(). Il calcule la différence entre les lignes et peut être utilisé pour identifier les doublons consécutifs. Cependant, elle est plus lente que la méthode shift() pour les grands ensembles de données.

Utilisation :

a.loc[a.diff() != 0]
Copier après la connexion

La réponse originale suggérait d'utiliser shift() avec une période de -1, mais l'utilisation correcte est shift(1) (ou simplement shift()) puisque la période de décalage par défaut est 1. Cette modification garantit que seule la première valeur consécutive est renvoyée :

a.loc[a.shift(1) != a]
Copier après la connexion

Les shift() et diff() Les méthodes fournissent des moyens efficaces de supprimer les doublons consécutifs dans Pandas et doivent être prises en compte en fonction du contexte spécifique et des exigences de performances.

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