J'ai un DataFrame df
rempli de lignes et de colonnes où il y a des identifiants en double:
Index Id Type
0 a1 A
1 a2 A
2 b1 B
3 b3 B
4 a1 A
...
Quand j'utilise:
uniqueId = df["Id"].unique()
Je reçois une liste d'identifiants uniques.
Comment puis-je cependant appliquer ce filtrage sur l'ensemble du DataFrame de telle sorte qu'il conserve la structure mais que les doublons (basés sur "Id") soient supprimés?
Il semble que vous ayez besoin de DataFrame.drop_duplicates
avec le paramètre subset
qui spécifie où se trouvent les doublons de test:
#keep first duplicate value
df = df.drop_duplicates(subset=['Id'])
print (df)
Id Type
Index
0 a1 A
1 a2 A
2 b1 B
3 b3 B
#keep last duplicate value
df = df.drop_duplicates(subset=['Id'], keep='last')
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B
4 a1 A
#remove all duplicate values
df = df.drop_duplicates(subset=['Id'], keep=False)
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B