Finden Sie doppelte Zeilen in einem DataFrame mit Pandas

Zeeshan Afridi 21 Juni 2023
  1. Verwenden Sie die Methode DataFrame.duplicated(), um doppelte Zeilen in einem DataFrame zu finden
  2. Erstellen Sie einen DataFrame mit doppelten Zeilen
  3. Wählen Sie Doppelte Zeilen basierend auf allen Spalten aus
  4. Abschluss
Finden Sie doppelte Zeilen in einem DataFrame mit Pandas

Doppelte Werte sollten im Rahmen des Bereinigungsverfahrens aus Ihrem Datensatz identifiziert werden. Doppelte Daten verbrauchen unnötig Speicherplatz und verlangsamen zumindest Berechnungen; Im schlimmsten Fall können doppelte Daten jedoch Analyseergebnisse verfälschen und die Integrität des Datensatzes gefährden.

Ein Open-Source-Python-Paket namens Pandas verbessert die Handhabung und Speicherung strukturierter Daten. Darüber hinaus bietet das Framework integrierte Unterstützung für Datenbereinigungsverfahren, z. B. das Suchen und Löschen doppelter Zeilen und Spalten.

Dieser Artikel beschreibt das Auffinden von Duplikaten in einem Pandas-Datenrahmen unter Verwendung aller oder einer Teilmenge der Spalten. Dazu verwenden wir die Dataframe.duplicated()-Methode von Pandas.

Verwenden Sie die Methode DataFrame.duplicated(), um doppelte Zeilen in einem DataFrame zu finden

Die Pandas-Bibliothek für die DataFrame-Klasse von Python bietet eine Member-Methode, um doppelte Zeilen entweder basierend auf allen Spalten oder einer Teilmenge dieser Spalten zu erkennen, wie zum Beispiel:

DataFrame.duplicated(subset=None, keep="first")

Es gibt eine Reihe von booleschen Werten zurück, die angeben, ob eine Zeile doppelt oder eindeutig ist.

Parameter:

  1. subset: Dies erfordert eine Spalte oder Sammlung von Spaltenbezeichnungen. None ist der Standardwert dafür. Nach dem Passieren von Spalten werden nur Duplikate berücksichtigt.
  2. keep: Dies regelt die Behandlung von doppelten Werten. Es gibt nur drei verschiedene Werte, wobei first die Voreinstellung ist.
  3. Bei first wird das erste Item als eindeutig und die restlichen Werte als Duplikate behandelt.
  4. Wenn neueste, wird das letzte Element als einzigartig behandelt und die verbleibenden Werte als Duplikate.
  5. Bei False werden alle identischen Werte als Duplikate betrachtet.
  6. Es gibt die doppelten Zeilen zurück, die durch die boolesche Reihe angezeigt werden.

Erstellen Sie einen DataFrame mit doppelten Zeilen

Lassen Sie uns einen einfachen Datenrahmen mit einer Sammlung von Listen erstellen und die Spalten Name, Alter und Stadt benennen.

Beispielcode:

# Import pandas library
import pandas as pd

# List of Tuples
employees = [
    ("Joe", 28, "Chicago"),
    ("John", 32, "Austin"),
    ("Melvin", 25, "Dallas"),
    ("John", 32, "Austin"),
    ("John", 32, "Austin"),
    ("John", 32, "Houston"),
    ("Melvin", 40, "Dehradun"),
    ("Hazel", 32, "Austin"),
]

df = pd.DataFrame(employees, columns=["Name", "Age", "City"])

print(df)

Ausgang:

    Name  Age      City
0     Joe   28   Chicago
1    John   32    Austin
2  Melvin   25    Dallas
3    John   32    Austin
4    John   32    Austin
5    John   32   Houston
6  Melvin   40  Dehradun
7   Hazel   32    Austin

Wählen Sie Doppelte Zeilen basierend auf allen Spalten aus

Rufen Sie Dataframe.duplicate() ohne einen subset-Parameter auf, um Duplikate für alle Zeilen in Abhängigkeit von allen Spalten zu finden und auszuwählen. Wenn jedoch doppelte Zeilen vorhanden sind, wird nur eine boolesche Reihe mit True an der Position der ersten Instanz zurückgegeben (der Standardwert des Retain-Arguments ist first).

Übergeben Sie dann diese boolesche Reihe an den DataFrame-Operator [], um die doppelten Zeilen auszuwählen.

Beispielcode:

# Import pandas library
import pandas as pd

# List of Tuples
employees = [
    ("Joe", 28, "Chicago"),
    ("John", 32, "Austin"),
    ("Melvin", 25, "Dallas"),
    ("John", 32, "Austin"),
    ("John", 32, "Austin"),
    ("John", 32, "Houston"),
    ("Melvin", 40, "Dehradun"),
    ("Hazel", 32, "Austin"),
]

df = pd.DataFrame(employees, columns=["Name", "Age", "City"])

duplicate = df[df.duplicated()]

print("Duplicate Rows :")

print(duplicate)

Ausgang:

Duplicate Rows :
   Name  Age    City
3  John   32  Austin
4  John   32  Austin

Übergeben Sie retain = "last" als Argument, wenn Sie alle Duplikate außer dem letzten berücksichtigen möchten.

Beispielcode:

# Import pandas library
import pandas as pd

# List of Tuples
employees = [
    ("Joe", 28, "Chicago"),
    ("John", 32, "Austin"),
    ("Melvin", 25, "Dallas"),
    ("John", 32, "Austin"),
    ("John", 32, "Austin"),
    ("John", 32, "Houston"),
    ("Melvin", 40, "Dehradun"),
    ("Hazel", 32, "Austin"),
]


df = pd.DataFrame(employees, columns=["Name", "Age", "City"])

duplicate = df[df.duplicated(keep="last")]

print("Duplicate Rows :")

print(duplicate)

Ausgang:

Duplicate Rows :
   Name  Age    City
1  John   32  Austin
3  John   32  Austin

Geben Sie dann die Liste der Spaltennamen in der Untermenge als Parameter an, wenn Sie nur doppelte Zeilen in Abhängigkeit von wenigen angegebenen Spalten auswählen möchten.

Beispielcode:

# Import pandas library
import pandas as pd

# List of Tuples
employees = [
    ("Joe", 28, "Chicago"),
    ("John", 32, "Austin"),
    ("Melvin", 25, "Dallas"),
    ("John", 32, "Austin"),
    ("John", 32, "Austin"),
    ("John", 32, "Houston"),
    ("Melvin", 40, "Dehradun"),
    ("Hazel", 32, "Austin"),
]

df = pd.DataFrame(employees, columns=["Name", "Age", "City"])

# on 'City' column
duplicate = df[df.duplicated("City")]

print("Duplicate Rows based on City:")

print(duplicate)

Ausgang:

Duplicate Rows based on City:
    Name  Age    City
3   John   32  Austin
4   John   32  Austin
7  Hazel   32  Austin

Wählen Sie die doppelten Zeilen basierend auf mehr als einem Spaltennamen aus, z. B. Name und Alter.

Beispielcode:

# Import pandas library
import pandas as pd

# List of Tuples
employees = [
    ("Joe", 28, "Chicago"),
    ("John", 32, "Austin"),
    ("Melvin", 25, "Dallas"),
    ("John", 32, "Austin"),
    ("John", 32, "Austin"),
    ("John", 32, "Houston"),
    ("Melvin", 40, "Dehradun"),
    ("Hazel", 32, "Austin"),
]

df = pd.DataFrame(employees, columns=["Name", "Age", "City"])

# list of the column names
duplicate = df[df.duplicated(["Name", "Age"])]

print("Duplicate the rows based on Name and Age:")

print(duplicate)

Ausgang:

Duplicate Rows based on Name and Age:
   Name  Age     City
3  John   32   Austin
4  John   32   Austin
5  John   32  Houston

Abschluss

Um doppelte Zeilen in einem DataFrame zu finden, verwenden Sie die Methode dataframe.duplicated() in Pandas. Es gibt eine Reihe von booleschen Werten zurück, die angeben, ob eine Zeile doppelt oder eindeutig ist.

Wir hoffen, dass dieser Artikel Ihnen dabei geholfen hat, doppelte Zeilen in einem Datenrahmen zu finden, indem Sie alle oder eine Teilmenge der Spalten verwenden, indem Sie alle Beispiele überprüfen, die wir hier besprochen haben. Dann können Sie mit den oben beschriebenen einfachen Schritten schnell feststellen, wie Pandas verwendet werden können, um Duplikate zu finden.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Pandas DataFrame Row