Oft möchten Sie möglicherweise die Werte zwischen zwei Pandas DataFrames vergleichen, um deren Ähnlichkeiten und Unterschiede zu erkennen.

In diesem Tutorial wird erklärt, wie das geht.

Beispiel: Vergleichen von zwei DataFrames in Pandas

Angenommen, wir haben die folgenden zwei Pandas DataFrames, die jeweils Daten über vier Basketballspieler enthalten:

import pandas as pd

#DataFrame 1 definieren
df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D'],
                   'points': [12, 15, 17, 24],
                   'assists': [4, 6, 7, 8]})
df1


        player  points  assists
0   A   12  4
1   B   15  6
2   C   17  7
3   D   24  88

#DataFrame 2 definieren
df2 = pd.DataFrame({'player': ['A', 'B', 'C', 'D'],
                    'points': [12, 24, 26, 29],
                    'assists': [7, 8, 10, 13]})
df2

    player  points  assists
0   A   12  7
1   B   24  8
2   C   26  10
3   D   29  13

Beispiel 1: Finden Sie heraus, ob die beiden DataFrames identisch sind.

Mit der Funktion DataFrame.equals() können wir zunächst herausfinden, ob die beiden DataFrames identisch sind:

# Prüfen Sie, ob zwei DataFrames identisch sind
df1.equals(df2)

False

Die beiden DataFrames enthalten nicht genau dieselben Werte, daher gibt diese Funktion False korrekt zurück.

Beispiel 2: Ermitteln Sie die Unterschiede in den Spielerstatistiken zwischen den beiden DataFrames.

Wir können die Unterschiede zwischen den Vorlagen und Punkten für jeden Spieler mithilfe der Pandas-Funktion subtract() ermitteln:

# Subtrahiere df1 von df2
df2.set_index('player').subtract(df1.set_index('player'))

    points  assists
player      
A   0   3
B   9   2
C   9   3
D   5   5

Die Art und Weise, dies zu interpretieren, ist wie folgt:

  • Spieler A hatte in beiden DataFrames die gleiche Anzahl an Punkten, in DataFrame 2 jedoch 3 weitere Vorlagen.
  • Spieler B hatte 9 weitere Punkte und 2 weitere Vorlagen in DataFrame 2 im Vergleich zu DataFrame 1.
  • Spieler C hatte 9 weitere Punkte und 3 weitere Vorlagen in DataFrame 2 im Vergleich zu DataFrame 1.
  • Spieler D hatte 5 weitere Punkte und 5 weitere Vorlagen in DataFrame 2 im Vergleich zu DataFrame 1.

Beispiel 3: Suchen Sie alle Zeilen, die nur in einem DataFrame vorhanden sind.

Wir können den folgenden Code verwenden, um eine vollständige Liste der Zeilen zu erhalten, die nur in einem DataFrame angezeigt werden:

# "Outer merge" der beiden DataFrames und eine Indikatorspalte mit dem Namen 'Exist' hinzufügen.
diff_df = pd.merge(df1, df2, how='outer', indicator='Exist')

# Finden Sie heraus, welche Zeilen in beiden DataFrames nicht vorhanden sind
diff_df = diff_df.loc[diff_df['Exist'] != 'both']
diff_df

    player  points  assists Exist
0   A   12  4   left_only
1   B   15  6   left_only
2   C   17  7   left_only
3   D   24  8   left_only
4   A   12  7   right_only
5   B   24  8   right_only
6   C   26  10  right_only
7   D   29  13  right_only

In diesem Fall teilen sich die beiden DataFrames keine identischen Zeilen, sodass insgesamt 8 Zeilen nur in einem der DataFrames angezeigt werden.

Die Spalte mit dem Titel "Exist" gibt an, in welchem DataFrame jede Zeile eindeutig angezeigt wird.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: