python - Supprimer les lignes en double de la base de données Pandas où seules certaines colonnes ont la même valeur



dataframe duplicates (1)

J'ai une base de données de pandas 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 parle des 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, il ne doit rester qu'une seule ligne (celle qui n'a pas d'importance).

FWIW: le nombre maximum de lignes dites en double (c'est-à-dire où les colonnes A et B sont identiques) est égal à 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

Utilisez drop_duplicates avec le subset - subset paramètres. 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




duplicates