Funzione Pandas DataFrame DataFrame.drop_duplicates()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.drop_duplicates():
  2. Codici di esempio: rimuovere le righe duplicate utilizzando il metodo Pandas DataFrame.set_index()
  3. Codici di esempio: imposta il parametro subset nel metodo Pandas DataFrame.set_index()
  4. Codici di esempio: Imposta il parametro keep nel metodo Pandas DataFrame.set_index()
  5. Codici di esempio: imposta il parametro ignore_index nel metodo Pandas DataFrame.set_index()
Funzione Pandas DataFrame DataFrame.drop_duplicates()

La funzione Python Pandas DataFrame.drop_duplicates() rimuove tutte le righe duplicate dal DataFrame.

Sintassi di 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)

Parametri

subset Etichetta di colonna o sequenza di etichette. Colonne da considerare durante l’identificazione dei duplicati
keep first, last o False. Elimina tutti i duplicati tranne il primo (keep=first), elimina tutti i duplicati tranne l’ultimo (keep=first) o elimina tutti i duplicati (keep=False)
inplace Booleano. Se True modifica il chiamante DataFrame
ignore_index Booleano. Se True, gli indici dell’originale DataFrame vengono ignorati. Il valore predefinito è False, il che significa che vengono utilizzati gli indici.

Ritorno

Se inplace è True, un DataFrame rimuove tutte le righe duplicate dal DataFrame; altrimenti None.

Codici di esempio: rimuovere le righe duplicate utilizzando il metodo Pandas DataFrame.set_index()

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)

Produzione:

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

Il DataFrame originale ha la prima e la quarta riga identiche.

Puoi rimuovere tutte le righe duplicate dal DataFrame utilizzando il metodo drop_duplicates().

Codici di esempio: imposta il parametro subset nel metodo 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_unique=df.drop_duplicates(subset ="Supplier") 

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

Produzione:

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

Questo metodo rimuove tutte le righe nel DataFrame, che non hanno valori univoci della colonna Supplier.

Qui, la prima, la terza e la quarta riga hanno un valore comune della colonna Fornitore. Quindi la terza e la quarta riga vengono rimosse dal DataFrame; come per impostazione predefinita, la prima riga duplicata non verrà rimossa.

Codici di esempio: Imposta il parametro keep nel metodo 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_unique=df.drop_duplicates(subset ="Supplier",keep="last") 

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

Produzione:

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

Questo metodo rimuove tutte le righe nel DataFrame, che non hanno valori univoci della colonna Supplier, mantenendo solo l’ultima riga duplicata.

Qui, la prima, la terza e la quarta riga hanno un valore comune della colonna Supplier. Quindi la prima e la terza riga vengono rimosse dal DataFrame.

Codici di esempio: imposta il parametro ignore_index nel metodo 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)

Produzione:

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

Qui, poiché ignore_index è impostato su True, gli indici dell’originale DataFrame vengono ignorati e vengono impostati nuovi indici per la riga.

A causa della funzione inplace=True, l’originale DataFrame viene modificato dopo aver chiamato la funzione ignore_index().

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame