logo

Wie kombiniere ich zwei Datenrahmen in Python – Pandas?

In vielen realen Situationen liegen die Daten, die wir verwenden möchten, in mehreren Dateien vor. Wir müssen diese Dateien oft in einem einzigen DataFrame kombinieren, um die Daten zu analysieren. Pandas bieten solche Funktionen zum einfachen Kombinieren von Serien oder DataFrames mit verschiedenen Arten von Mengenlogik für die Indizes und relationaler Algebra-Funktionalität im Fall von Operationen vom Typ Join/Merge. Wir können auch Daten aus mehreren Tabellen kombinieren Pandas . Darüber hinaus bietet Pandas auch Dienstprogramme zum Vergleichen zweier Serien oder DataFrames und zum Zusammenfassen ihrer Unterschiede.

Verketten von DataFrames in Pandas

Die Funktion concat() in Pandas wird verwendet, um entweder Spalten oder Zeilen von einem DataFrame an einen anderen anzuhängen. Der Pandas concat()-Funktion übernimmt die ganze schwere Arbeit der Durchführung von Verkettungsoperationen entlang einer Achse und führt gleichzeitig optionale Mengenlogik (Vereinigung oder Schnittmenge) der Indizes (falls vorhanden) auf den anderen Achsen aus.



Python3








import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)>

>

>

Ausgabe:

    id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Beitritt zu DataFrames in Pandas

Als wir unsere DataFrames verkettet haben, haben wir sie einfach aneinandergefügt, also entweder vertikal oder nebeneinander gestapelt. Eine andere Möglichkeit, DataFrames zu kombinieren, besteht darin, in jedem Datensatz Spalten zu verwenden, die gemeinsame Werte enthalten (eine gemeinsame eindeutige ID). Das Kombinieren von DataFrames mithilfe eines gemeinsamen Felds wird als Zusammenfügen bezeichnet. Die Spalten mit den gemeinsamen Werten werden als Join-Schlüssel bezeichnet. Das Verbinden von DataFrames auf diese Weise ist oft nützlich, wenn ein DataFrame eine Nachschlagetabelle ist, die zusätzliche Daten enthält, die wir in den anderen aufnehmen möchten.

Notiz: Dieser Vorgang des Zusammenfügens von Tabellen ähnelt dem, was wir mit Tabellen in einer tun SQL-Datenbank .

Wenn Sie mehrere DataFrames zusammenfügen, haben Sie die Wahl, wie mit den anderen Achsen (außer der zu verkettenden) umgegangen werden soll. Dies kann auf zwei Arten erfolgen:

  • Nehmen Sie die Vereinigung aller, join=’outer’. Dies ist die Standardoption, da sie zu keinem Informationsverlust führt.
  • Nehmen Sie die Kreuzung, join=’inner’.

Beispiel: Inner Join zweier DataFrames mit der concat()-Methode

In diesem Beispiel zwei Pandas DataFrames,df1>Unddf3>, werden mithilfe eines inneren Joins basierend auf ihren Indizes verkettet. Der resultierende DataFrame mit dem Namen „result“ enthält nur Zeilen, in denen sich die Spalte „id“ befindetdf1>entspricht der Spalte „Stadt“ indf3>.

Python3


angepasste Ausnahme in Java



import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)>

>

>

Ausgabe:

  id Name City Age  0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>

Verketten mit der Funktion append()

Eine nützliche Verknüpfung zu concat() ist die Instanzmethode append() für Series und DataFrame. Mit dieser Methode können Daten aus mehreren Tabellen in Pandas kombiniert werden. Diese Methoden waren tatsächlich älter als concat.

Beispiel 1: Kombinieren zweier DataFrames mit der Methode append()

In diesem Beispiel zwei Pandas DataFrames,df1>Unddf2>, werden mit dem kombiniertappend>Methode, was zu einem neuen DataFrame mit dem Namen „result“ führt. Der resultierende DataFrame enthält alle Zeilen von beidendf1>Unddf2>, mit fortlaufendem Index.

B-Baum und B-Baum

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)>

>

>

Ausgabe:

   id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Notiz: append() kann mehrere Objekte zum Verketten benötigen.

Beispiel 2: Kombinieren Sie Daten aus mehreren Tabellen in Pandas

In diesem Beispiel drei Pandas DataFrames,df1>,df2>, Unddf3>, werden mit dem aneinandergehängtappend>Methode. Der resultierende DataFrame mit dem Namen „result“ kombiniert alle Zeilen aus den drei DataFrames und behält einen kontinuierlichen Index bei.

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)>

>

>

Ausgabe:

   id Name City Age  0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>