J'ai un pandas dataframe comme suit:
A B C
1 2 x
1 2 y
3 4 z
3 5 x
Je veux qu'il ne reste qu'une ligne de lignes qui partagent les mêmes valeurs dans des colonnes spécifiques. Dans l'exemple ci-dessus, je veux dire les colonnes A et B . En d'autres termes, si les valeurs des colonnes A et B apparaissent plusieurs fois dans la trame de données, une seule ligne doit rester (laquelle n'a pas d'importance).
FWIW: le nombre maximum de lignes dites en double (c'est-à-dire où la colonne A et B sont les mêmes) est 2.
Le résultat devrait ressembler à ceci:
A B C
1 2 x
3 4 z
3 5 x
ou
A B C
1 2 y
3 4 z
3 5 x
Utilisation drop_duplicates
avec le paramètre subset
, pour ne conserver que les dernières lignes dupliquées, ajoutez keep='last'
:
df1 = df.drop_duplicates(subset=['A','B'])
#same as
#df1 = df.drop_duplicates(subset=['A','B'], keep='first')
print (df1)
A B C
0 1 2 x
2 3 4 z
3 3 5 x
df2 = df.drop_duplicates(subset=['A','B'], keep='last')
print (df2)
A B C
1 1 2 y
2 3 4 z
3 3 5 x