Pandas

So verbinden Sie DataFrames in Pandas Python?

So verbinden Sie DataFrames in Pandas Python?
Pandas DataFrame ist eine zweidimensionale (2D) Datenstruktur, die in einem Tabellenformat ausgerichtet ist. Diese DataFrames können mit verschiedenen Methoden wie concat(), merge() und Joins kombiniert werden. Pandas verfügen über eine hohe Leistung und voll funktionsfähige Join-Operationen, die der relationalen SQL-Datenbank ähneln. Mit der Merge-Funktion können Join-Operationen zwischen DataFrames-Objekten implementiert werden.

In diesem Artikel werden wir die Verwendung der Merge-Funktion, der Concat-Funktion und verschiedener Arten von Join-Operationen in Pandas Python untersuchen. Alle Beispiele werden über den pycharm-Editor ausgeführt. Fangen wir mit den Details an!

Verwendung der Zusammenführungsfunktion

Die grundlegende häufig verwendete Syntax der Funktion merge() ist unten angegeben:

pd.merge(df_obj1, df_obj2, how='inner', on=Keine, left_on=Keine, right_on=Keine)

Lassen Sie uns die Details der Parameter erklären:

Die ersten zwei df_obj1 und df_obj2 Argumente sind die Namen der DataFrame-Objekte oder -Tabellen.

Das "Wie”-Parameter wird für verschiedene Arten von Join-Operationen verwendet, z. B. „links, rechts, außen und innen“. Die Merge-Funktion verwendet standardmäßig die „innere“ Join-Operation.

Das Argument "auf" enthält den Spaltennamen, für den der Join-Vorgang ausgeführt wird. Diese Spalte muss in beiden DataFrame-Objekten vorhanden sein.

In den Argumenten „left_on“ und „right_on“ ist „left_on“ der Name des Spaltennamens als Schlüssel im linken DataFrame. Das „right_on“ ist der Name der Spalte, die als Schlüssel aus dem rechten DataFrame verwendet wird.

Um das Konzept des Zusammenführens von DataFrames näher zu erläutern, haben wir zwei DataFrame-Objekte genommen – Produkt und Kunde. Die folgenden Details sind im Produkt-DataFrame enthalten:

Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zähnebürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)

Der Kunden-DataFrame enthält folgende Angaben:

Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)

Verbinden Sie DataFrames mit einem Schlüssel

Wir können online verkaufte Produkte und die Kunden, die sie gekauft haben, leicht finden. Basierend auf einem Schlüssel „Product_ID“ haben wir also die Inner-Join-Operation für beide DataFrames wie folgt durchgeführt:

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Stadt':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,on='Product_ID'))

Die folgende Ausgabe wird im Fenster angezeigt, nachdem der obige Code ausgeführt wurde:

Wenn die Spalten in beiden DataFrames unterschiedlich sind, schreiben Sie den Namen jeder Spalte explizit mit den Argumenten left_on und right_on wie folgt:

Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zähnebürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Stadt':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,left_on='Product_Name',right_on='Product_Purchased'))

Die folgende Ausgabe wird auf dem Bildschirm angezeigt:

Verbinden Sie DataFrames mit How Argument

In den folgenden Beispielen erklären wir vier Arten von Joins-Operationen auf Pandas DataFrames:

Inneres Mitmachen bei Pandas

Wir können einen Inner Join auf mehreren Schlüsseln durchführen. Um weitere Details zu den Produktverkäufen anzuzeigen, nehmen Sie Product_ID, Seller_City aus dem Produkt-DataFrame und Product_ID und „Customer_City“ aus dem Kunden-DataFrame, um herauszufinden, dass entweder der Verkäufer oder der Kunde zur gleichen Stadt gehört. Implementieren Sie die folgenden Codezeilen:

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,how='inner',left_on=['Product_ID','Seller_City'],right_on=['Product_ID','Customer_City']))

Das folgende Ergebnis wird im Fenster angezeigt, nachdem der obige Code ausgeführt wurde:

Vollständige/äußere Teilnahme an Pandas

Outer Joins geben sowohl rechte als auch linke DataFrames-Werte zurück, die entweder Übereinstimmungen haben. Um den Outer-Join zu implementieren, legen Sie das „how“-Argument als „outer“ fest. Lassen Sie uns das obige Beispiel modifizieren, indem wir das Outer-Join-Konzept verwenden. Im folgenden Code werden alle Werte des linken und rechten DataFrames zurückgegeben.

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,on='Product_ID',how='outer'))

Setzen Sie das Indikatorargument auf „Wahr“ s. Sie werden feststellen, dass die neue Spalte „_merge“ am Ende hinzugefügt wird.

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,on='Product_ID',how='outer',indicator=True))

Wie Sie im folgenden Screenshot sehen können, erklären die Werte der Zusammenführungsspalte, welche Zeile zu welchem ​​DataFrame gehört.

Links Mach mit bei Pandas

Left Join zeigt nur Zeilen des linken DataFrame an.  Es ist ähnlich dem äußeren Join. Ändern Sie also den Argumentwert "wie" mit "links". Versuchen Sie den folgenden Code, um die Idee von Left Join zu implementieren:

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,on='Product_ID',how='left'))

Mach mit bei Pandas

Der rechte Join hält alle rechten DataFrame-Zeilen rechts zusammen mit den Zeilen, die auch im linken DataFrame vorkommen. In diesem Fall wird das Argument „wie“ als „richtiger“ Wert gesetzt. Führen Sie den folgenden Code aus, um das richtige Join-Konzept zu implementieren:

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.merge(product,customer,on='Product_ID',how='right'))

Im folgenden Screenshot sehen Sie das Ergebnis, nachdem Sie den obigen Code ausgeführt haben:

Verbinden von DataFrames mit der Funktion Concat()

Zwei DataFrames können mit der Concat-Funktion verbunden werden. Die grundlegende Syntax der Verkettungsfunktion ist unten angegeben:

pd.concat([df_obj1, df_obj_2]))

Zwei DataFrames-Objekte werden als Argumente übergeben.

Verbinden wir sowohl das DataFrames-Produkt als auch den Kunden über die concat-Funktion. Führen Sie die folgenden Codezeilen aus, um zwei DataFrames zu verbinden:

# Pandas-Bibliothek importieren
Pandas als pd importieren
Produkt=pd.Datenrahmen(
'Produkt_ID':[101,102,103,104,105,106,107],
'Product_Name':['Kopfhörer','Tasche','Schuhe','Smartphone','Zahnbürste','Armbanduhr','Laptop'],
'Kategorie':['Elektronik','Mode','Mode','Elektronik','Lebensmittel','Mode','Elektronik'],
'Preis':[300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karatschi','Rawalpindi','Islamabad','Karatschi','Faisalabad']
)
Kunde=pd.Datenrahmen(
'ID':[1,2,3,4,5,6,7,8,9],
'Customer_Name':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Alter':[20,21,15,10,31,52,15,18,16],
'Produkt_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['Kopfhörer','NA','Armbanduhr','NA','Schuhe','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
drucken (pd.concat([Produkt,Kunde]))

Fazit:

In diesem Artikel haben wir die Implementierung der Funktionen merge(), concat() und Joins in Pandas Python besprochen. Mit den oben genannten Methoden können Sie ganz einfach zwei DataFrames verbinden und lernen. So implementieren Sie die Join-Operationen „innen, außen, links und rechts“ in Pandas. Hoffentlich führt Sie dieses Tutorial bei der Implementierung der Join-Operationen für verschiedene Arten von DataFrames. Bitte teilen Sie uns Ihre Schwierigkeiten im Fehlerfall mit.

Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...
Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...