Fonction Pandas DataFrame DataFrame.drop_duplicates()

Suraj Joshi 30 janvier 2023
  1. Syntaxe de pandas.DataFrame.drop_duplicates() :
  2. Exemples de codes : Supprimer les lignes en double en utilisant Pandas DataFrame.set_index() Méthode
  3. Exemples de codes : Définissez le paramètre subset Pandas DataFrame.set_index() Méthode
  4. Exemples de codes : Définissez le paramètre keep Pandas DataFrame.set_index() Méthode
  5. Exemples de codes : Définissez le paramètre ignore_index dans la méthode Pandas DataFrame.set_index()
Fonction Pandas DataFrame DataFrame.drop_duplicates()

La fonction Python Pandas DataFrame.drop_duplicates() supprime toutes les lignes en double dans le DataFrame.

Syntaxe de pandas.DataFrame.drop_duplicates() :

DataFrame.drop_duplicates(subset: Union[Hashable, Sequence[Hashable], NoneType]=None,
                          keep: Union[str, bool]='first',
                          inplace: bool=False,
                          ignore_index: bool=False)

Paramètres

subset Étiquette de colonne ou séquence d’étiquettes. Colonnes à prendre en compte lors de l’identification des doublons
keep first, last ou False. Supprimer tous les doublons sauf le premier (keep=first), supprimer tous les doublons sauf le dernier (keep=first) ou supprimer tous les doublons (keep=False)
inplace Booléen. Si True, modifiez l’appelant DataFrame.
ignore_index Booléen. Si True, les index de la DataFrame originale sont ignorés. La valeur par défaut est False, ce qui signifie que les index sont utilisés.

Renvoie

Si inplace est True, un DataFrame supprimant toutes les lignes en double du DataFrame ; sinon None.

Exemples de codes : Supprimer les lignes en double en utilisant Pandas DataFrame.set_index() Méthode

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','BCD' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates() 

print("DataFrame with Unique Rows:")
print(df_unique)

Production:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD
3  Orange     34      Yes      ABC
DataFrame with Unique Rows:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD

Le DataFrame original a la 1ère et la 4ème ligne identiques.

Vous pouvez supprimer toutes les lignes dupliquées du DataFrame en utilisant la méthode drop_duplicates().

Exemples de codes : Définissez le paramètre subset Pandas DataFrame.set_index() Méthode

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

Production:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ

Cette méthode supprime toutes les lignes du DataFrame, qui n’ont pas de valeurs uniques de la colonne Supplier.

Ici, les 1ère, 3ème et 4ème lignes ont une valeur commune de la colonne Supplier. Ainsi, les 3ème et 4ème lignes sont supprimées du DataFrame ; par défaut, la première ligne en double ne sera pas supprimée.

Exemples de codes : Définissez le paramètre keep Pandas DataFrame.set_index() Méthode

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier",keep="last") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

Production:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
1   Mango     24       No      XYZ
3  Orange     34      Yes      ABC

Cette méthode supprime toutes les lignes de la DataFrame, qui n’ont pas de valeurs uniques de la colonne Supplier, en ne conservant que la dernière ligne en double.

Ici, les 1ère, 3ème et 4ème lignes ont une valeur commune de la colonne Supplier. Ainsi, les 1ère et 3ème lignes sont supprimées du DataFrame.

Exemples de codes : Définissez le paramètre ignore_index dans la méthode Pandas DataFrame.set_index()

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df.drop_duplicates(subset ="Supplier",keep="last",inplace=True,ignore_index=True) 

print("DataFrame with Unique vales of Supplier Column:")
print(df)

Production:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0   Mango     24       No      XYZ
1  Orange     34      Yes      ABC

Ici, comme ignore_index est mis à True, les index de la DataFrame originale sont ignorés, et de nouveaux index sont mis pour la ligne.

Grâce à la fonction inplace=True, le DataFrame original est modifié après l’appel de la fonction ignore_index().

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame