Pandas: so finden sie den unterschied zwischen zwei linien


Sie können die Funktion DataFrame.diff() verwenden, um den Unterschied zwischen zwei Zeilen in einem Pandas-DataFrame zu ermitteln.

Diese Funktion verwendet die folgende Syntax:

DataFrame.diff(Perioden=1, Achse=0)

Gold:

  • Perioden: Die Anzahl der vorherigen Zeilen zur Berechnung der Differenz.
  • Achse: Finden Sie den Unterschied in Zeilen (0) oder Spalten (1).

Die folgenden Beispiele zeigen, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel 1: Finden Sie den Unterschied zwischen den einzelnen vorherigen Zeilen

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' sales ': [12, 14, 15, 15, 18, 20, 19, 24],
                   ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]})

#view DataFrame
df

	period sales returns
0 1 12 2
1 2 14 2
2 3 15 3
3 4 15 3
4 5 18 5
5 6 20 4
6 7 19 4
7 8 24 6

Der folgende Code zeigt, wie Sie den Unterschied zwischen jeder aktuellen Zeile eines DataFrame und der vorherigen Zeile ermitteln:

 #add new column to represent sales differences between each row
df[' sales_diff '] = df[' sales ']. diff ()

#view DataFrame
df

        period sales returns sales_diff
0 1 12 2 NaN
1 2 14 2 2.0
2 3 15 3 1.0
3 4 15 3 0.0
4 5 18 5 3.0
5 6 20 4 2.0
6 7 19 4 -1.0
7 8 24 6 5.0

Beachten Sie, dass wir auch den Unterschied zwischen mehreren vorherigen Zeilen ermitteln können. Der folgende Code zeigt beispielsweise, wie Sie den Unterschied zwischen jeder aktuellen Zeile und der Zeile ermitteln, die drei Zeilen zuvor angezeigt wurde:

 #add new column to represent sales differences between current row and 3 rows earlier
df[' sales_diff '] = df[' sales ']. diff (periods= 3 )

#view DataFrame
df

        period sales returns sales_diff
0 1 12 2 NaN
1 2 14 2 NaN
2 3 15 3 NaN
3 4 15 3 3.0
4 5 18 5 4.0
5 6 20 4 5.0
6 7 19 4 4.0
7 8 24 6 6.0

Beispiel 2: Finden Sie den Unterschied basierend auf der Bedingung

Wir können den DataFrame auch filtern, um Zeilen anzuzeigen, bei denen die Differenz zwischen der aktuellen Zeile und der vorherigen Zeile kleiner oder größer als ein bestimmter Wert ist.

Der folgende Code gibt beispielsweise nur Zeilen zurück, in denen der Wert der aktuellen Zeile kleiner als der Wert der vorherigen Zeile ist:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' sales ': [12, 14, 15, 13, 18, 20, 19, 24],
                   ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]})

#find difference between each current row and the previous row
df[' sales_diff '] = df[' sales ']. diff ()

#filter for rows where difference is less than zero
df = df[df[' sales_diff ']< 0 ]

#view DataFrame
df

        period sales returns sales_diff
3 4 13 3 -2.0
6 7 19 4 -1.0

Zusätzliche Ressourcen

So finden Sie in Pandas eindeutige Werte in mehreren Spalten
So filtern Sie einen Pandas DataFrame nach Spaltenwerten
So wählen Sie Zeilen nach Index in einem Pandas DataFrame aus

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert