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