Pandas merge() – Zusammenführen von zwei DataFrame-Objekten

Pandas merge() – Zusammenführen von zwei DataFrame-Objekten

Tags: Pandas, Datenanalyse, DataFrame, Zusammenführen

Einführung

Pandas ist eine weit verbreitete Python-Bibliothek für Datenmanipulation und -analyse. Eine der wichtigsten Funktionen in Pandas ist die merge() -Funktion, die verwendet wird, um zwei oder mehr DataFrame-Objekte basierend auf einem oder mehreren gemeinsamen Schlüsseln zu verbinden. Dies ermöglicht es Datenwissenschaftlern und Analysten, Daten aus verschiedenen Quellen zu kombinieren, um umfassendere Analysen und Erkenntnisse zu gewinnen.

In diesem Artikel werden wir die merge() -Funktion in Pandas ausführlich erläutern, einschließlich ihrer Syntax, Parameter, Optionen und Anwendungsfälle. Wir werden auch Beispiele und Code-Snippets bereitstellen, um das Verständnis zu verbessern.

Syntax

Die Syntax der merge() -Funktion lautet folgendermaßen:

python
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False)

Parameter:

* left: Erster DataFrame, der zusammengeführt werden soll.
* right: Zweiter DataFrame, der zusammengeführt werden soll.
* how: Art der Zusammenführung. Kann „inner“, „left“, „right“ oder „outer“ sein.
* on: Name der gemeinsamen Spalte(n) für die Zusammenführung. Kann ein einzelner Spaltenname oder eine Liste von Spaltennamen sein.
* left_on: Name(n) der Spalte(n) aus dem linken DataFrame für die Zusammenführung.
* right_on: Name(n) der Spalte(n) aus dem rechten DataFrame für die Zusammenführung.
* left_index: Gibt an, ob der Index des linken DataFrame als Schlüssel für die Zusammenführung verwendet werden soll.
* right_index: Gibt an, ob der Index des rechten DataFrame als Schlüssel für die Zusammenführung verwendet werden soll.

Optionen

Die merge() -Funktion bietet eine Reihe von Optionen, die die Zusammenführung weiter anpassen können:

* indicator: Gibt an, ob eine Spalte mit dem Namen „_merge“ hinzugefügt werden soll, die den Typ der Zusammenführung für jede Zeile angibt.
* suffixes: Gibt die Suffixe an, die an die Namen von Spalten mit demselben Namen aus verschiedenen DataFrames angehängt werden sollen.
* copy: Gibt an, ob Kopien der Input-DataFrames erstellt werden sollen, bevor sie zusammengeführt werden.
* validate: Gibt an, ob die Eingabe-DataFrames auf Konsistenz überprüft werden sollen, bevor sie zusammengeführt werden.

  Wie man das Beste auswählt

Anwendungsfälle

Die merge() -Funktion hat zahlreiche Anwendungsfälle in der Datenanalyse, darunter:

* Daten aus verschiedenen Quellen kombinieren: Zusammenführen von Daten aus relationalen Datenbanken, CSV-Dateien und anderen Datenquellen.
* Daten bereinigen und bereichern: Hinzufügen von Informationen aus einer Quelle zu einer anderen, um die Vollständigkeit und Genauigkeit der Daten zu verbessern.
* Daten transformieren: Erstellen neuer Merkmale oder Spalten durch Zusammenführen von Daten aus verschiedenen Quellen.
* Daten aggregieren: Zusammenfassen von Daten aus mehreren Quellen, um Gesamt- oder Durchschnittswerte zu erhalten.

Beispiele

Beispiel 1: Einfache Zusammenführung

python
import pandas as pd

left = pd.DataFrame({
'id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie']
})

right = pd.DataFrame({
'id': [2, 3, 4],
'age': [25, 30, 35]
})

merged = pd.merge(left, right, on='id')

print(merged)

Ausgabe:


id name age
0 2 Bob 25
1 3 Charlie 30

Beispiel 2: Zusammenführung mit mehreren Schlüsseln

python
left = pd.DataFrame({
'id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie'],
'city': ['New York', 'London', 'Paris']
})

right = pd.DataFrame({
'id': [2, 3, 4],
'age': [25, 30, 35],
'city': ['London', 'Paris', 'Berlin']
})

merged = pd.merge(left, right, on=['id', 'city'])

print(merged)

Ausgabe:


id name city age
0 2 Bob London 25
1 3 Charlie Paris 30

Beispiel 3: Zusammenführung mit Index

python
left = pd.DataFrame({
'id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie']
}, index=['a', 'b', 'c'])

right = pd.DataFrame({
'age': [25, 30, 35]
}, index=['b', 'c', 'd'])

merged = pd.merge(left, right, left_index=True, right_index=True)

print(merged)

Ausgabe:


id name age
0 2 Bob 25
1 3 Charlie 30

Fazit

Die merge() -Funktion in Pandas ist ein leistungsstarkes Werkzeug für die Datenzusammenführung und -analyse. Durch die Flexibilität bei der Anpassung der Zusammenführungsparameter und -optionen können Datenwissenschaftler und Analysten Daten aus verschiedenen Quellen nahtlos kombinieren, um umfassende Analysen durchzuführen und wertvolle Erkenntnisse zu gewinnen.

Das Verständnis der Syntax, Parameter, Optionen und Anwendungsfälle der merge() -Funktion ist entscheidend für die effektive Nutzung von Pandas für Datenmanipulations- und -analyseaufgaben. Durch das Üben und Experimentieren mit verschiedenen Zusammenführungsszenarien können Datenexperten ihre Fähigkeiten verbessern und datengesteuerte Entscheidungen auf der Grundlage zuverlässiger und aussagekräftiger Informationen treffen.

Häufig gestellte Fragen (FAQs)

1. Wann sollte die Option „left“ bzw. „right“ für den Parameter „how“ verwendet werden?
– Die Option „left“ führt zu einer Zusammenführung, bei der nur die Zeilen aus dem linken DataFrame beibehalten werden, die im rechten DataFrame übereinstimmen. Die Option „right“ führt zu einer Zusammenführung, bei der nur die Zeilen aus dem rechten DataFrame beibehalten werden, die im linken DataFrame übereinstimmen.

2. Wie kann verhindert werden, dass beim Zusammenführen Duplikate erstellt werden?
– Durch Hinzufügen der Option „indicator=True“ wird eine Spalte „_merge“ hinzugefügt, die den Typ der Zusammenführung für jede Zeile angibt. Duplikate können dann durch Filtern dieser Spalte entfernt werden.

3. Wie kann die Reihenfolge der Spalten im zusammengeführten DataFrame gesteuert werden?
– Durch Hinzufügen der Option „sort=True“ werden die Spalten im zusammengeführten DataFrame in alphabetischer Reihenfolge sortiert.

4. Was ist der Unterschied zwischen „inner“, „left“ und „right“ Zusammenführungen?
– Eine „inner“ Zusammenführung gibt nur die Zeilen zurück, die in beiden DataFrames übereinstimmen. Eine „left“ Zusammenführung gibt alle Zeilen aus dem linken DataFrame zurück, auch wenn sie nicht im rechten DataFrame übereinstimmen. Eine „right“ Zusammenführung gibt alle Zeilen aus dem rechten DataFrame zurück, auch wenn sie nicht im linken DataFrame übereinstimmen.

5. Wie kann die Leistung der merge() -Funktion verbessert werden?
– Durch Erstellen von Indizes für die Spalten, die für die Zusammenführung verwendet werden, kann die Leistung verbessert werden.

6. Was bedeutet die Option „left_index=True“ bzw. „right_index=True“?
– Diese Optionen geben an, dass die Indizes der linken bzw. rechten DataFrames als Schlüssel für die Zusammenführung verwendet werden sollen.

7. Kann die merge() -Funktion verwendet werden, um Daten aus mehr als zwei DataFrames zusammenzuführen?
– Ja, die merge() -Funktion kann verwendet werden, um Daten aus mehreren DataFrames zusammenzuführen, indem sie nacheinander zusammengeführt werden.

8. Wie kann die merge() -Funktion verwendet werden, um Daten aus relationalen Datenbanken zusammenzuführen?
– Durch Verwendung des Pandas-Moduls „read_sql“ können Daten aus relationalen Datenbanken in DataFrames importiert werden, die dann mithilfe der merge() -Funktion zusammengeführt werden können.

9. Wie kann die merge() -Funktion zur Feature-Generierung verwendet werden?
– Durch Zusammenführen von Daten aus verschiedenen Quellen können neue Features oder Spalten erstellt werden, die wertvolle Informationen für maschinelle Lernmodelle liefern.

10. Welche zusätzlichen Funktionen bietet die merge() -Funktion in Pandas?
– Die merge() -Funktion bietet weitere Funktionen, wie z. B. die Möglichkeit, den Zusammenführungstyp anzugeben, Suffixe für Spalten mit demselben Namen hinzuzufügen und die Zusammenführung auf bestimmte Zeilen oder Spalten zu beschränken.