Merging Two Dataframes Pandas
Stell dir vor, du hast zwei Listen. Die eine ist eine Liste deiner Freunde und deren Lieblingsessen: Max mag Pizza, Susi liebt Sushi, und Paul vergöttert Pasta. Die andere Liste enthält Infos darüber, wo deine Freunde wohnen: Max wohnt in München, Susi in Stuttgart, und Paul – Überraschung! – in Passau. Was wäre, wenn du jetzt wissen willst, wer was mag und wo er wohnt? Das ist wie gemacht für Pandas DataFrames und das magische Werkzeug des "Merging"! Keine Sorge, es ist einfacher als es klingt, versprochen!
Das große Zusammenführen: Pandas Merge in Aktion
Pandas, diese fantastische Bibliothek für Python, hat eine Funktion namens merge(), die genau das tut: Sie klebt zwei Tabellen (oder DataFrames, wie sie in Pandas-Sprache heißen) anhand einer gemeinsamen Spalte zusammen. Denk an Lego-Steine, die perfekt ineinander passen. Super befriedigend, oder?
Die Zutaten für den Merge-Zaubertrank
Für unser Beispiel brauchen wir also zwei DataFrames. Der erste, nennen wir ihn essens_df, enthält die Spalten "Name" und "Lieblingsessen". Der zweite, wohnort_df, hat die Spalten "Name" und "Wohnort". Die Spalte "Name" ist unser gemeinsamer Nenner, der uns sagt, wer wer ist. Stell dir vor, du hättest statt "Name" die Spalte "Nummer des Alien-Raumschiffs". Solange beide DataFrames diese Spalte haben und die Werte eindeutig sind, kann Pandas zaubern!
Die eigentliche Magie passiert dann mit dem Befehl pd.merge(essens_df, wohnort_df, on="Name"). Boom! Pandas nimmt die beiden DataFrames, sucht nach der Spalte "Name" und fügt die Zeilen zusammen, die den gleichen Namen haben. Das Ergebnis? Ein neuer DataFrame, der alle Informationen vereint: Max liebt Pizza und wohnt in München, Susi liebt Sushi und wohnt in Stuttgart, und Paul liebt Pasta und wohnt in Passau. Ein vollständiges Profil unserer Feinschmecker-Freunde!
Merge-Methoden: Mehr als nur ein Knopf
Aber halt! Es gibt verschiedene Arten, wie Pandas DataFrames zusammenführen kann. Stell dir vor, du hättest in der Liste deiner Freunde auch noch Erika, die aber keinen Eintrag in der Wohnort-Liste hat. Was dann?
- Inner Merge: Das ist die Standardeinstellung. Hier werden nur die Zeilen behalten, die in beiden DataFrames vorkommen. Erika würde in diesem Fall komplett ignoriert werden. Ziemlich fies, oder?
- Left Merge: Hier bleiben alle Zeilen aus dem linken DataFrame (in unserem Fall
essens_df) erhalten. Wenn Erika inessens_dfsteht, aber keinen Eintrag inwohnort_dfhat, bleibt sie im Ergebnis drin, aber die Spalte "Wohnort" ist dann leer (technisch gesehenNaN, aber das ist nur Pandas-Chinesisch für "keine Ahnung"). - Right Merge: Das Gegenteil von Left Merge. Hier bleiben alle Zeilen aus dem rechten DataFrame (
wohnort_df) erhalten. - Outer Merge: Der Alleskönner! Hier bleiben alle Zeilen aus beiden DataFrames erhalten. Wenn jemand in einem DataFrame fehlt, wird das mit
NaNaufgefüllt. So vergisst man niemanden!
Du wählst die Merge-Methode mit dem Parameter how in der merge()-Funktion. Zum Beispiel: pd.merge(essens_df, wohnort_df, on="Name", how="left") für einen Left Merge.
Wenn die Spalten unterschiedlich heißen…
Manchmal sind die Spalten, anhand derer du mergen willst, nicht identisch benannt. Stell dir vor, in wohnort_df heißt die Spalte "Name" plötzlich "Benutzername". Kein Problem! Du kannst die Parameter left_on und right_on verwenden, um Pandas zu sagen, welche Spalten in welchem DataFrame zusammengehören: pd.merge(essens_df, wohnort_df, left_on="Name", right_on="Benutzername"). Clever, oder?
Und wenn du mehrere Spalten zum Mergen brauchst? Kein Problem! Übergib einfach eine Liste von Spaltennamen an on, left_on oder right_on. Das ist wie ein mehrdimensionaler Lego-Turm, der perfekt zusammenpasst!
Merging mit Pandas ist wie ein Schweizer Taschenmesser für Datenmanipulation. Es ist unglaublich vielseitig und kann dir helfen, Informationen aus verschiedenen Quellen auf elegante und effiziente Weise zusammenzuführen. Also, schnapp dir deine DataFrames, probier es aus und werde zum Merge-Meister! Und denk dran: Daten können Spaß machen!
