Pandas : comment supprimer les doublons sur plusieurs colonnes



Vous pouvez utiliser les méthodes suivantes pour supprimer les lignes en double sur plusieurs colonnes dans un DataFrame pandas :

Méthode 1 : supprimer les doublons dans toutes les colonnes

df.drop_duplicates()

Méthode 2 : supprimer les doublons dans des colonnes spécifiques

df.drop_duplicates(['column1', 'column3'])

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'region': ['East', 'East', 'East', 'West', 'West', 'West'],
                   'store': [1, 1, 2, 1, 2, 2],
                   'sales': [5, 5, 7, 9, 12, 8]})

#view DataFrame
print(df)

  region  store  sales
0   East      1      5
1   East      1      5
2   East      2      7
3   West      1      9
4   West      2     12
5   West      2      8

Exemple 1 : supprimer les doublons dans toutes les colonnes

Le code suivant montre comment supprimer les lignes comportant des valeurs en double dans toutes les colonnes :

#drop rows that have duplicate values across all columns
df.drop_duplicates()

	region	store	sales
0	East	1	5
2	East	2	7
3	West	1	9
4	West	2	12
5	West	2	8

La ligne en position d’index 1 avait les mêmes valeurs dans toutes les colonnes que la ligne en position d’index 0, elle a donc été supprimée du DataFrame.

Par défaut, pandas conserve la première ligne en double. Cependant, vous pouvez utiliser l’argument keep pour spécifier de conserver la dernière ligne en double :

#drop rows that have duplicate values across all columns (keep last duplicate)
df.drop_duplicates(keep='last')

	region	store	sales
1	East	1	5
2	East	2	7
3	West	1	9
4	West	2	12
5	West	2	8

Exemple 2 : supprimer les doublons dans des colonnes spécifiques

Vous pouvez utiliser le code suivant pour supprimer les lignes comportant des valeurs en double uniquement dans les colonnes de région et de magasin :

#drop rows that have duplicate values across region and store columns
df.drop_duplicates(['region', 'store'])

	region	store	sales
0	East	1	5
2	East	2	7
3	West	1	9
4	West	2	12

Au total, deux lignes ont été supprimées du DataFrame car elles contenaient des valeurs en double dans les colonnes de région et de magasin .

Remarque : Vous pouvez trouver la documentation complète de la fonction drop_duplicates() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment trouver des doublons chez les pandas
Comment supprimer les colonnes en double dans Pandas
Comment supprimer la première ligne dans Pandas DataFrame

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *