Maison  >  Article  >  développement back-end  >  Comment supprimer les lignes en double basées sur des indices dans Pandas ?

Comment supprimer les lignes en double basées sur des indices dans Pandas ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-13 05:13:02184parcourir

How to Remove Duplicate Rows Based on Indices in Pandas?

Comment supprimer les lignes en double basées sur des indices dans Pandas

Dans l'analyse des données, il est souvent nécessaire d'identifier et de supprimer les lignes en double dans un ensemble de données. Lorsque vous travaillez avec Pandas, une bibliothèque Python populaire pour la manipulation de données, vous pouvez rencontrer des scénarios dans lesquels plusieurs lignes partagent des valeurs d'index identiques. Ce problème peut survenir pour des raisons telles que des erreurs de saisie de données ou des duplications involontaires.

Exemple de lignes en double

Considérez le DataFrame météo suivant, qui représente les observations prises toutes les heures. intervalles :

                      Sta  Precip1hr  Precip5min  Temp  DewPnt  WindSpd  WindDir  AtmPress
Date                                                                                      
2001-01-01 00:00:00  KPDX          0           0     4       3        0        0     30.31
2001-01-01 00:05:00  KPDX          0           0     4       3        0        0     30.30
2001-01-01 00:10:00  KPDX          0           0     4       3        4       80     30.30
2001-01-01 00:15:00  KPDX          0           0     3       2        5       90     30.30
2001-01-01 00:20:00  KPDX          0           0     3       2       10      110     30.28

Dans ce DataFrame, notez que l'observation pour "2001-01-01 00:00:00" est dupliquée à la fin du DataFrame. Pour nettoyer les données, il est essentiel de supprimer ces lignes en double.

Utilisation de la méthode dupliquée

Pandas fournit une méthode efficace appelée dupliquée pour identifier et sélectionner les lignes en double. Cette méthode prend en compte les lignes en double basées sur toutes les colonnes du DataFrame. En passant le paramètre keep, vous pouvez spécifier s'il faut conserver la première ou la dernière occurrence de chaque groupe dupliqué.

Dans ce cas, nous souhaitons conserver la première occurrence de chaque groupe dupliqué en fonction de l'index :

df3 = df3[~df3.index.duplicated(keep='first')]

Cette approche exploite la méthode dupliquée de l'objet Pandas Index, qui opère directement sur les indices du DataFrame. En annulant le résultat en utilisant ~, nous sélectionnons les lignes qui ne sont pas marquées comme doublons. Spécifier keep='first' garantit que nous conservons la première instance de chaque groupe d'index en double.

Considérations sur les performances

Il est important de noter que les performances des différentes méthodes La suppression des lignes en double varie en fonction des données et des conditions spécifiques. L'analyse comparative montre que la méthode dupliquée est la plus performante pour l'exemple donné, suivie de la méthode groupby et de reset_index().drop_duplicates().

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