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]
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]
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]
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!