Comment sélectionner des lignes uniques dans un DataFrame Pandas



Vous pouvez utiliser la syntaxe suivante pour sélectionner des lignes uniques dans un DataFrame pandas :

df = df.drop_duplicates()

Et vous pouvez utiliser la syntaxe suivante pour sélectionner des lignes uniques dans des colonnes spécifiques dans un DataFrame pandas :

df = df.drop_duplicates(subset=['col1', 'col2', ...])

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'a': [4, 4, 3, 8],
                   'b': [2, 2, 6, 8],
                   'c': [2, 2, 9, 9]})

#view DataFrame
df

	a	b	c
0	4	2	2
1	4	2	2
2	3	6	9
3	8	8	9

Exemple 1 : sélectionner des lignes uniques dans toutes les colonnes

Le code suivant montre comment sélectionner des lignes uniques dans toutes les colonnes du DataFrame pandas :

#drop duplicates from DataFrame
df = df.drop_duplicates()

#view DataFrame
df

	a	b	c
0	4	2	2
2	3	6	9
3	8	8	9

Les première et deuxième lignes étaient des doublons, donc les pandas ont laissé tomber la deuxième ligne.

Par défaut, la fonction drop_duplicates() conservera le premier doublon. Cependant, vous pouvez spécifier de conserver le dernier doublon à la place :

#drop duplicates from DataFrame, keep last duplicate
df = df.drop_duplicates(keep='last')

#view DataFrame
df

	a	b	c
1	4	2	2
2	3	6	9
3	8	8	9

Exemple 2 : sélectionner des lignes uniques dans des colonnes spécifiques

Le code suivant montre comment sélectionner des lignes uniques dans la seule colonne « c » du DataFrame :

#drop duplicates from column 'c' in DataFrame
df = df.drop_duplicates(subset=['c'])

#view DataFrame
df
	a	b	c
0	4	2	2
2	3	6	9

Deux lignes ont été supprimées du DataFrame.

Ressources additionnelles

Comment sélectionner des lignes par index dans un DataFrame Pandas
Comment obtenir des numéros de ligne dans un DataFrame Pandas
Comment trouver des valeurs uniques dans une colonne dans Pandas

Ajouter un commentaire

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