Als Datenanalyst müssen Sie häufig mehrere Datensätze kombinieren. Sie müssen dies tun, um Ihre Analyse abzuschließen und zu einer Schlussfolgerung für Ihr Unternehmen/Ihre Stakeholder zu gelangen.
Es ist oft eine Herausforderung, Daten darzustellen, wenn sie in verschiedenen Tabellen gespeichert sind. Unter solchen Umständen bewähren sich Joins, unabhängig davon, mit welcher Programmiersprache Sie arbeiten.
Python-Joins sind wie SQL-Joins: Sie kombinieren Datensätze, indem sie ihre Zeilen mit einem gemeinsamen Index abgleichen.
Erstellen Sie zwei DataFrames als Referenz
Um den Beispielen in diesem Handbuch zu folgen, können Sie zwei Beispiel-DataFrames erstellen. Verwenden Sie den folgenden Code, um den ersten DataFrame zu erstellen, der eine ID, einen Vornamen und einen Nachnamen enthält.
importieren Pandas wie pd
a = pd. Datenrahmen ({"ICH WÜRDE": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Schmied", "Kerr Hislop", "Barbier"]})
drucken(a)
Importieren Sie im ersten Schritt die Pandas Bibliothek. Sie können dann eine Variable verwenden, a, um das Ergebnis des DataFrame-Konstruktors zu speichern. Übergeben Sie dem Konstruktor ein Wörterbuch mit Ihren erforderlichen Werten.
Zeigen Sie schließlich den Inhalt des DataFrame-Werts mit der Druckfunktion an, um zu überprüfen, ob alles wie erwartet aussieht.
Ebenso können Sie einen weiteren DataFrame erstellen, b, die eine ID und Gehaltswerte enthält.
b = pd. Datenrahmen ({"ICH WÜRDE": ["001", "002", "003", "004", "005"],
"Gehalt": [100000, 700000, 80000, 904750, 604772]})
drucken(b)
Sie können die Ausgabe in einer Konsole oder einer IDE überprüfen. Es sollte den Inhalt Ihrer DataFrames bestätigen:
Wie unterscheiden sich Joins von der Merge-Funktion in Python?
Die Pandas-Bibliothek ist eine der Hauptbibliotheken, die Sie zum Bearbeiten von DataFrames verwenden können. Da DataFrames mehrere Datensätze enthalten, stehen in Python verschiedene Funktionen zur Verfügung, um sie zu verbinden.
Python bietet unter anderem die Join- und Merge-Funktionen, mit denen Sie DataFrames kombinieren können. Es gibt einen großen Unterschied zwischen diesen beiden Funktionen, den Sie beachten müssen, bevor Sie eine von beiden verwenden.
Die Join-Funktion verbindet zwei DataFrames basierend auf ihren Indexwerten. Das Die Zusammenführungsfunktion kombiniert DataFrames basierend auf den Indexwerten und den Spalten.
Was müssen Sie über Joins in Python wissen?
Bevor wir die verfügbaren Join-Typen besprechen, sind hier einige wichtige Dinge zu beachten:
- SQL-Joins sind eine der grundlegendsten Funktionen und sind den Joins von Python ziemlich ähnlich.
- Um DataFrames beizutreten, können Sie die verwenden Pandas. DataFrame.join() Methode.
- Die Standardverknüpfung führt eine linke Verknüpfung durch, während die Zusammenführungsfunktion eine innere Verknüpfung ausführt.
Die Standardsyntax für einen Python-Join lautet wie folgt:
DataFrame.join (andere, on=None, how='links/rechts/innen/außen', lsuffix='', rsuffix='',
sortieren=FALSCH)
Rufen Sie die Join-Methode für den ersten DataFrame auf und übergeben Sie den zweiten DataFrame als ersten Parameter. Sonstiges. Die restlichen Argumente sind:
- an, der einen Index benennt, dem beigetreten werden soll, falls es mehr als einen gibt.
- wie, die den Verbindungstyp definiert, einschließlich inner, äußere, links und rechts.
- lsuffix, die die linke Suffixzeichenfolge Ihres Spaltennamens definiert.
- rsuffix, die die richtige Suffix-Zeichenfolge Ihres Spaltennamens definiert.
- Sortieren, was ein boolescher Wert ist, der angibt, ob der resultierende DataFrame sortiert werden soll.
Erfahren Sie, wie Sie die verschiedenen Arten von Joins in Python verwenden
Python hat ein paar Join-Optionen, die Sie je nach Bedarf der Stunde ausüben können. Hier sind die Join-Typen:
1. Links beitreten
Die linke Verknüpfung hält die Werte des ersten DataFrame intakt, während die übereinstimmenden Werte aus dem zweiten übernommen werden. Zum Beispiel, wenn Sie die passenden Werte aus einspielen möchten b, können Sie es wie folgt definieren:
c = a.join (b, wie="links", lsuffix = "_links", rsuffix = "_Rechts", sortieren = True)
drucken(c)
Wenn die Abfrage ausgeführt wird, enthält die Ausgabe die folgenden Spaltenreferenzen:
- ID_links
- Fname
- Lname
- ID_richtig
- Gehalt
Dieser Join zieht die ersten drei Spalten aus dem ersten DataFrame und die letzten beiden Spalten aus dem zweiten DataFrame. Es hat die verwendet lsuffix und rsuffix -Werte, um die ID-Spalten aus beiden Datensätzen umzubenennen und sicherzustellen, dass die resultierenden Feldnamen eindeutig sind.
Die Ausgabe ist wie folgt:
2. Richtig beitreten
Die rechte Verknüpfung hält die Werte des zweiten DataFrame intakt, während die übereinstimmenden Werte aus der ersten Tabelle übernommen werden. Zum Beispiel, wenn Sie die passenden Werte aus einspielen möchten a, können Sie es wie folgt definieren:
c = b.join (a, wie="Rechts", lsuffix = "_Rechts", rsuffix = "_links", sortieren = True)
drucken(c)
Die Ausgabe ist wie folgt:
Wenn Sie den Code überprüfen, gibt es einige offensichtliche Änderungen. Beispielsweise enthält das Ergebnis die Spalten des zweiten DataFrame vor denen des ersten DataFrame.
Sie sollten einen Wert von verwenden Rechts für die wie -Argument, um einen rechten Join anzugeben. Beachten Sie auch, wie Sie die wechseln können lsuffix und rsuffix Werte, um die Art der richtigen Verbindung widerzuspiegeln.
In Ihren regulären Joins werden Sie möglicherweise feststellen, dass Sie häufiger Left-, Inner- und Outer-Joins verwenden als den Right-Join. Die Nutzung hängt jedoch ganz von Ihren Datenanforderungen ab.
3. Innerer Beitritt
Ein innerer Join liefert die übereinstimmenden Einträge aus beiden DataFrames. Da Joins die Indexnummern verwenden, um Zeilen abzugleichen, gibt ein innerer Join nur Zeilen zurück, die übereinstimmen. Verwenden wir für diese Veranschaulichung die folgenden zwei DataFrames:
a = pd. Datenrahmen ({"ICH WÜRDE": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Schmied", "Kerr Hislop", "Barbier", "Hooper", "Hoffnung"]})
b = pd. Datenrahmen ({"ICH WÜRDE": ["001", "002", "003", "004", "005"],
"Gehalt": [100000, 700000, 80000, 904750, 604772]})
drucken(a)
drucken(b)
Die Ausgabe ist wie folgt:
Sie können einen Inner Join wie folgt verwenden:
c = a.join (b, lsuffix="_links", rsuffix="_Rechts", wie='innere')
drucken(c)
Die resultierende Ausgabe enthält nur Zeilen, die in beiden Eingabe-DataFrames vorhanden sind:
4. Äußerer Join
Ein äußerer Join gibt alle Werte aus beiden DataFrames zurück. Für Zeilen ohne übereinstimmende Werte wird ein Nullwert für die einzelnen Zellen erzeugt.
Unter Verwendung des gleichen DataFrame wie oben ist hier der Code für die äußere Verknüpfung:
c = a.join (b, lsuffix="_links", rsuffix="_Rechts", wie='äußere')
drucken(c)
Verwendung von Joins in Python
Joins bieten wie ihre Gegenstücke Merge und Concat weit mehr als eine einfache Join-Funktionalität. Aufgrund der Reihe von Optionen und Funktionen können Sie die Optionen auswählen, die Ihren Anforderungen entsprechen.
Mit den flexiblen Optionen, die Python bietet, können Sie die resultierenden Datensätze mit oder ohne Join-Funktion relativ einfach sortieren.