Pandas DataFrame DataFrame.drop_duplicates()-Funktion

Pandas DataFrame DataFrame.drop_duplicates()-Funktion

Suraj Joshi Feb-17, 2021 Nov-14, 2020 Pandas Pandas DataFrame
  1. Syntax von pandas.DataFrame.drop_duplicates():
  2. Beispiel-Codes: Entfernen doppelter Zeilen mit Pandas DataFrame.set_index() Methode
  3. Beispiel-Codes: Set subset Parameter Pandas DataFrame.set_index() Methode
  4. Beispiel-Codes: Set keep Parameter Pandas DataFrame.set_index() Methode
  5. Beispiel-Codes: Setze ignore_index Parameter in Pandas DataFrame.set_index() Methode

Die Python Pandas DataFrame.drop_duplicates() Funktion entfernt alle doppelten Zeilen aus dem DataFrame.

Syntax von 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)

Parameter

subset Spaltenetikett oder Reihenfolge der Etiketten. Spalten, die bei der Identifizierung von Duplikaten zu berücksichtigen sind
keep first, last oder False. Alle Duplikate außer dem ersten verwerfen (keep=first), alle Duplikate außer dem letzten verwerfen (keep=first) oder alle Duplikate verwerfen (keep=False)
inplace Boolesch. Wenn True den Aufrufer DataFrame modifiziert
ignore_index Boolesch. Wenn True, werden die Indizes aus dem ursprünglichen DataFrame ignoriert. Der Standardwert ist False, was bedeutet, dass die Indizes verwendet werden.

Zurück

Wenn inplace gleich True ist, ein DataFrame, der alle doppelten Zeilen aus dem DataFrame entfernt; andernfalls None.

Beispiel-Codes: Entfernen doppelter Zeilen mit Pandas DataFrame.set_index() Methode

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)

Ausgabe:

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

Beim ursprünglichen DataFrame sind die 1. und 4. Zeile identisch.

Sie können alle doppelten Zeilen aus dem DataFrame entfernen, indem Sie die Methode drop_duplicates() verwenden.

Beispiel-Codes: Set subset Parameter Pandas DataFrame.set_index() Methode

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)

Ausgabe:

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

Diese Methode entfernt alle Zeilen im DataFrame, die keine eindeutigen Werte in der Spalte Supplier haben.

Hier haben die 1., 3. und 4. Zeile einen gemeinsamen Wert in der Spalte Supplier. Die 3. und 4. Zeile werden also aus dem DataFrame entfernt; standardmäßig wird die erste doppelte Zeile nicht entfernt.

Beispiel-Codes: Set keep Parameter Pandas DataFrame.set_index() Methode

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)

Ausgabe:

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

Diese Methode entfernt alle Zeilen im DataFrame, die keine eindeutigen Werte der Spalte Supplier haben, wobei nur die letzte doppelte Zeile erhalten bleibt.

Hier haben die 1., 3. und 4. Zeile einen gemeinsamen Wert der Spalte Supplier. Daher werden die 1. und 3. Zeile aus dem DataFrame entfernt.

Beispiel-Codes: Setze ignore_index Parameter in Pandas DataFrame.set_index() Methode

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)

Ausgabe:

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

Wenn hier ignore_index auf True gesetzt wird, werden die Indizes aus dem ursprünglichen DataFrame ignoriert und neue Indizes für die Zeile gesetzt.

Aufgrund der Funktion inplace=True wird der originale DataFrame nach dem Aufruf der Funktion ignore_index() modifiziert.

Verwandter Artikel - Pandas DataFrame

  • Pandas concat Funktion
  • Pandas cut Funktion
  • Pandas DataFrame sort_index() Funktion
  • Pandas DataFrame.idxmax() Funktion
  • Pandas DataFrame.insert() Funktion
  • Pandas DataFrame.resample() Funktion