Suppression des lignes en double basées sur plusieurs colonnes dans Python Pandas
La fonction drop_duplicates dans Pandas fournit un moyen efficace de supprimer les lignes en double d'un DataFrame . Cependant, que se passe-t-il si vous souhaitez supprimer des lignes uniquement si elles correspondent à un ensemble spécifique de colonnes ?
Problème :
Considérez un DataFrame avec les colonnes "A", " B" et "C". Vous souhaitez supprimer les lignes dont les valeurs des colonnes « A » et « C » sont identiques. En d'autres termes, vous devez identifier et supprimer les lignes 0 et 1 de cet exemple DataFrame :
A | B | C | |
---|---|---|---|
0 | foo | 0 | A |
1 | foo | 1 | A |
2 | foo | 1 | B |
3 | bar | 1 | A |
Solution :
Vous pouvez désormais y parvenir facilement en utilisant le fonction drop_duplicates et le paramètre subset :
import pandas as pd df = pd.DataFrame({"A": ["foo", "foo", "foo", "bar"], "B": [0, 1, 1, 1], "C": ["A", "A", "B", "A"]}) df.drop_duplicates(subset=['A', 'C'], keep=False)
Le paramètre keep= spécifie s'il faut supprimer les lignes en double, y compris la première occurrence, ou de les exclure. Le définir sur False supprimera tous les doublons.
Le résultat est un DataFrame avec les lignes 0 et 1 supprimées, ne laissant que les lignes uniques basées sur les colonnes "A" et "C":
A | B | C | |
---|---|---|---|
0 | foo | 1 | B |
1 | bar | 1 | A |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!