[PYTHON] [Pandas] So überprüfen Sie Duplikate in einer Tabelle und löschen Duplikate (entspricht dem Löschen von Duplikaten in Excel)

[Python] So überprüfen und entfernen Sie Duplikate in einer Tabelle (pandas DataFrame)

Eine Zusammenfassung, wie Sie in einer Tabelle nach doppelten Elementen suchen und doppelte Werte entfernen.

Sie können dieselbe Verarbeitung wie "Entfernen von Duplikaten" ausführen, die in Excel häufig verwendet wird.


> Offizielle Seite ・ [Dupplicated](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.duplicated.html?highlight=dupli#pandas.DataFrame.duplicated) ・ [Drop_duplicates](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.drop_duplicates.html?highlight=dupli#pandas.Index.drop_duplicates)
**Inhaltsverzeichnis**
  1. [Auf doppelte Zeilen prüfen](# 1 Auf doppelte Zeilen prüfen)
    1. duplicated
    2. duplicated(keep='last')
    3. duplicated(keep=False)
    4. duplicated(['aaa'])
    5. duplicated(['aaa','bbb'])
  2. [Doppelte Zeilen löschen](# 2 Doppelte Zeilen löschen)
    1. drop_duplicates
    2. drop_duplicates(keep='last')
    3. drop_duplicates(keep=False)
    4. drop_duplicates(['aaa'])
    5. drop_duplicates(['aaa','bbb'])
  3. [In der Zeilenüberschrift nach Duplikaten suchen](In der Zeilenüberschrift Nr. 3 nach Duplikaten suchen)
  4. [Auf doppelte Zeilennamen prüfen](# Auf doppelte Zeilennamen prüfen)
  5. [Doppelte Zeilennamen löschen und bestätigen](# Doppelte Zeilennamen löschen und bestätigen)
  6. [Doppelte Bestätigung durch Spaltennamen](# 4 Doppelte Bestätigung durch Spaltennamen)

### ▼ Zu verwendende Tabellendaten Überprüfen Sie jede Methode anhand der folgenden Tabelle.

image.png

-Row0 und row5 sind vollständig dupliziert. ・ Alle Elemente von col0 und col4 werden dupliziert ・ Col2 ist row0 = row5, row1 = row4 ・ Col3 ist row0 = row5, row1 = row3


## 1. 1. Suchen Sie nach doppelten Zeilen - Mit der ** duplizierten Methode ** können Zeilen mit doppelten Elementen extrahiert werden.

-Es ist auch möglich, das Ziel Spalte für Spalte Name anzugeben.


### Haupt duplizierte Methoden

①duplicated ②duplicated(keep='last') ③duplicated(keep=False) ④duplicated(['aaa']) ⑤duplicated(['aaa','bbb'])


①duplicated `duplicated()` Doppelte Zeilen, die in allen Spalten vollständig dupliziert sind, werden bewertet.

duplicated


df.duplicated()

#Ausgabe
row0    False
row1    False
row2    False
row3    False
row4    False
row5     True
dtype: bool

Nur Zeile 5 wird als Duplikat (True) bewertet.

Zeile = 0 und Zeile = 5 sind in allen Spalten gleich. Standardmäßig ist die erste Zeile False, daher wird Zeile 5 als doppelt bewertet.

Standard: "keep = 'first'" Die folgenden zwei Prozesse sind gleich.

df.duplicated() df.duplicated(keep='first')


②duplicated(keep='last') `duplicated(keep='last')` Die erste doppelte Zeile wird als doppelt beurteilt. (Verlasse die Rückseite)

keep=last


df.duplicated(keep='last')

#Ausgabe
row0     True
row1    False
row2    False
row3    False
row4    False
row5    False
dtype: bool

row0 ist ein doppeltes Urteil (True).


③duplicated(keep=False) `duplicated(keep=False)` Alle doppelten Zeilen werden als doppelte Zeilen bewertet.

keep=False


df.duplicated(keep=False)

#Ausgabe
row0     True
row1    False
row2    False
row3    False
row4    False
row5     True
dtype: bool

Zeile 0 und Zeile 5 sind doppelte Beurteilungen (True).


④duplicated(['aaa']) `duplicated(['aaa'])` └ Eine doppelte Beurteilung wird nur für die angegebene Spalte durchgeführt (hier "aaa").

** ▼ Bei Vervielfältigung (['col0']) **

Geben Sie eine Spalte an


df.duplicated(['col0'])

#Ausgabe

row0    False
row1     True
row2     True
row3     True
row4     True
row5     True
dtype: bool

Da alle Elemente von col0 1 sind, werden alle außer der ersten Spalte als Duplikate beurteilt.


⑤duplicated(['aaa','bbb']) `duplicated(['aaa','bbb',,,])` └ Geben Sie mehrere Spalten für eine doppelte Beurteilung an. └ Wenn jede angegebene Zeile ein doppeltes Urteil ist (True), wird ein doppeltes Urteil abgegeben. └ Wenn auch nur eine Spalte unterschiedlich ist, ist sie falsch.
df.duplicated(['col0','col3'])

#Ausgabe
row0    False
row1    False
row2    False
row3     True
row4    False
row5     True
dtype: bool

Nur row3 und row5 sind True. └ Zeile3 von col0 und col3 ist True → True └ Zeile 5 von col0 und col3 ist True → True └ col0 und row1 sind True, row1 von col3 ist False → False


## 2. Entfernen Sie doppelte Zeilen Verwenden Sie die Methode drop_duplicates. Im Gegensatz zur Bestätigung der Vervielfältigung ** Plural **  └`drop_duplicates`  └`duplicated`

Die Zeile, die von der duplizierten Methode als doppelt (wahr) beurteilt wird, ist das Ziel des Löschens.


### Hauptmethode drop_duplicates

①drop_duplicates ②drop_duplicates(keep='last') ③drop_duplicates(keep=False) ④drop_duplicates(['aaa']) ⑤drop_duplicates(['aaa','bbb'])


①drop_duplicates `drop_duplicates()` └ Löschen Sie Zeilen, in denen alle Elemente dupliziert werden. └ Verlassen Sie die oberste Zeile (keep = 'first')

drop_duplicates


df.drop_duplicates()

image.png

row5 wurde gelöscht.

Dupliziere row0 und row5. Da die oberste Zeile nicht als doppelt bewertet wird (Standard ist keep = 'first'), wurde Zeile 5 gelöscht.


②drop_duplicates(keep='last') `drop_duplicates(keep='last')` └ Löschen Sie Zeilen, in denen alle Elemente dupliziert werden. └ Verlassen Sie das Endergebnis (keep = 'last')

keep='last'


df.drop_duplicates(keep='last')

image.png


③drop_duplicates(keep=False) `drop_duplicates(keep=False)` └ Löschen Sie alle doppelten Zeilen

keep=False


df.drop_duplicates(keep=False)S

image.png

Löschte sowohl row0 als auch row5.


④drop_duplicates(['aaa']) `drop_duplicates(['aaa'])` └ Löschen Sie doppelte Zeilen in der angegebenen Spalte. └ "aaa": Spaltenname
** ▼ Bei drop_duplicates (['col0']) **

Spalte angeben


df.drop_duplicates(['col0'])

image.png

Alle Elemente von col0 werden von row0 bis row5 dupliziert. Da es sich um eine andere doppelte Beurteilung als Zeile 1 handelt, wird sie gelöscht.


** ▼ Bei drop_duplicates (['col0'], keep = 'last') **

Spalte angeben


drop_duplicates(['col0'], keep='last')

image.png

Wenn keep = 'last' ist, ist das Endergebnis keine doppelte Prüfung.


⑤drop_duplicates(['aaa','bbb']) `drop_duplicates(['aaa','bbb'])` └ Löschen Sie die doppelte Zeile in den angegebenen f mehreren Spalten. └ "aaa" "bbb": Spaltenname
** ▼ Für df.drop_duplicates (['col2', 'col3']) **

Geben Sie mehrere Spalten an


df.drop_duplicates(['col2', 'col3'])

image.png

Zeile 5 gelöscht.

Die Duplikate in Spalte 2 sind Zeile1, Zeile4, Zeile5. Die Duplikate in Spalte 3 sind Zeile 1 und Zeile 5. ⇛ Common ist row1 und row5. Da die erste doppelte Zeile so eingestellt ist, dass sie erhalten bleibt (Standard ist keep = 'first'), wird nur Zeile 5 gelöscht.


## 3. 3. Doppelte Bestätigung in der Zeilenüberschrift Wenn Sie eine Zeile für das Objekt angeben, können Sie überprüfen, ob eine Zeile mit demselben Namen vorhanden ist, oder eine Liste mit Zeilennamen ohne Duplizierung anzeigen.

① Bestätigung doppelter Zeilennamen ② Löschen Sie den doppelten Zeilennamen und überprüfen Sie

** ▼ Verfügbare Optionen ** keep='first' └ Beurteilen Sie keine Duplikate für den Namen der ersten Zeile keep='last' └ Beurteilen Sie den letzten Zeilennamen von Duplikaten nicht als Duplikate keep=False └ Alle doppelten Zeilennamen gelten als doppelte └ Wenn False, ist kein Kontingent erforderlich


### ① Bestätigung doppelter Zeilennamen `df.index.duplicated()` └ "df": Tabellendaten └ ".index": Liste der Zeilennamen abrufen └ ".duplicated ()": Doppelte Zeilen als True anzeigen

Da die Option ".duplicated ()" standardmäßig "keep = 'first'" ist, ist die erste doppelte Zeile False und die zweite und nachfolgende Zeile True.

Suchen Sie nach doppelten Zeilennamen


df.index.duplicated()

#Ausgabe
# array([False, False, False, False,  True,  True])

▼ Originaltabelle image.png

Die Namen der 0. und 5. Zeile sowie die Namen der 1. und 4. Zeile werden dupliziert. ⇛ Das 5. und 4. sind doppelte Urteile.


** ▼ Wenn keep = False **

Alle doppelten Zeilennamen sind True


df.index.duplicated(keep=False)

#Ausgabe
# array([ True,  True, False, False,  True,  True])

### ② Löschen Sie den doppelten Zeilennamen und überprüfen Sie `df.index.drop_duplicates()`

So erhalten Sie eine Liste mit Zeilennamen, indem Sie doppelte Zeilennamen entfernen.

Wird verwendet, wenn Sie den Zeilennamen überprüfen möchten.

Holen Sie sich durch Löschen des Zeilennamens


df.index.drop_duplicates()

#Ausgabe
# Index(['AAA', 'BBB', 'CCC', 'DDD'], dtype='object')

Die zweiten "AAA" und "BBB", die dupliziert wurden, wurden gelöscht.

▼ Originaltabelle image.png


## 4. Doppelte Bestätigung durch Spaltennamen Wenn Sie im Objekt einen Spaltennamen angeben, können Sie dasselbe mit dem Spaltennamen tun.

df.columns.duplicated() df.columns.drop_duplicates() └ ".columns": Extrahieren Sie die Spaltennamen der Tabelle mit Liste.


[Zurück zum Anfang](# Python-Tabellen-Duplikatprüfung und Entfernen von Duplikaten)

Recommended Posts

[Pandas] So überprüfen Sie Duplikate in einer Tabelle und löschen Duplikate (entspricht dem Löschen von Duplikaten in Excel)
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
[GCF + Python] So laden Sie Excel in GCS hoch und erstellen eine neue Tabelle in BigQuery
[Python] So fügen Sie einer Tabelle Zeilen und Spalten hinzu (pandas DataFrame)
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
So formatieren Sie eine Tabelle mit Pandas Apply, Pivot und Swaplevel
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
So zeigen Sie DataFrame als Tabelle in Markdown an
So überprüfen Sie, ob ein Wert in einem Aufzählungstyp vorhanden ist
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
Überprüfen Sie beim Lösen der einführenden Statistikübung 12.10, wie Sie ein Streudiagramm in Pandas zeichnen.
Wie man nüchtern mit Pandas schreibt
So löschen Sie einen Docker-Container
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
So vergleichen Sie Listen und rufen allgemeine Elemente in einer Liste ab
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So löschen Sie mehrere angegebene Positionen (Indizes) in einer Python-Liste
So teilen und speichern Sie einen DataFrame
So löschen Sie abgelaufene Sitzungen in Django
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So weisen Sie den Index im Pandas-Datenrahmen neu zu
So setzen Sie in Python ein Leerzeichen mit halber Breite vor Buchstaben und Zahlen.
So überprüfen Sie die Version von opencv mit Python
So machen Sie den Containernamen in Docker als Subdomain zugänglich
Lesen von CSV-Dateien mit Pandas
Verwendung ist und == in Python
Verwendung von pandas Timestamp und date_range
[Hinweis] Umgang mit Unicode-Fehlern und Keine solche Datei oder kein solches Verzeichnis (Ausgabe der Tabelle zur Excel-Datei mit Pandas)
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)
So löschen Sie einen Taple in einer Liste (Python)
So generieren Sie eine Sequenz in Python und C ++
Einbetten von Variablen in Python-Strings
[Python] Wie man Excel-Dateien mit Pandas liest
So implementieren Sie eine Verlaufsauswahl in Houdini
So überprüfen / extrahieren Sie Dateien im RPM-Paket
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So erstellen Sie eine Rest-API in Django
Wie schreibe ich ein benanntes Tupeldokument im Jahr 2020?
So zählen Sie Zahlen in einem bestimmten Bereich
Fügen Sie mit Pandas Summen zu Zeilen und Spalten hinzu
So lesen Sie Dateien in verschiedenen Verzeichnissen
Wie man eine öffentliche Funktion in Pytest verspottet
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
Aufteilen von Trainingsdaten für maschinelles Lernen in objektive Variablen und andere in Pandas
So überprüfen Sie, ob es sich um einen Wörterbuch-Typ (Wörterbuch, Hash) handelt, indem Sie einen oder alle verwenden
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Verwendung von Docker zum Containerisieren Ihrer Anwendung und Verwenden von Docker Compose zum Ausführen Ihrer Anwendung in einer Entwicklungsumgebung
So legen Sie das Schema in den Django-Datenbankeinstellungen fest
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Zugriff mit dem Cache beim Lesen von_json mit Pandas