So erstellen sie eine versetzte spalte in pandas (mit beispielen)
Sie können die Funktion „shift()“ in Pandas verwenden, um eine Spalte zu erstellen, die aus einer anderen Spalte verschobene Werte anzeigt.
Diese Funktion verwendet die folgende grundlegende Syntax:
df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )
Beachten Sie, dass der Wert der Funktion „shift()“ die Anzahl der Werte angibt, für die die Verschiebung berechnet werden soll.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Erstellen Sie eine Offset-Spalte in Pandas
Nehmen wir an, wir haben den folgenden Pandas-DataFrame, der die von einem Geschäft an 10 aufeinanderfolgenden Tagen erzielten Verkäufe anzeigt:
import pandas as pd #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' sales ': [18, 10, 14, 13, 19, 24, 25, 29, 15, 18]}) #view DataFrame print (df) day sales 0 1 18 1 2 10 2 3 14 3 4 13 4 5 19 5 6 24 6 7 25 7 8 29 8 9 15 9 10 18
Mit der Funktion „shift()“ können wir eine Schichtspalte erstellen, die für jede Zeile die Umsätze des Vortages anzeigt:
#add column that represents lag of sales column df[' sales_previous_day '] = df[' sales ']. shift ( 1 ) #view updated DataFrame print (df) day sales sales_previous_day 0 1 18 NaN 1 2 10 18.0 2 3 14 10.0 3 4 13 14.0 4 5 19 13.0 5 6 24 19.0 6 7 25 24.0 7 8 29 25.0 8 9 15 29.0 9 10 18 15.0
So interpretieren Sie das Ergebnis:
- Der erste Wert in der Verzögerungsspalte ist NaN , da es in der Verkaufsspalte keinen vorherigen Wert gibt.
- Der zweite Wert in der Offset-Spalte ist 18 , da es sich um den vorherigen Wert in der Spalte „Sales“ handelt.
- Der dritte Wert in der Spalte „Offset“ ist 10 , da es sich um den vorherigen Wert in der Spalte „Umsätze“ handelt.
Und so weiter.
Beachten Sie, dass wir dem DataFrame auch mehrere Offset-Spalten hinzufügen können, wenn wir möchten:
#add two lag columns df[' sales_previous_day '] = df[' sales ']. shift ( 1 ) df[' sales_previous_day2 '] = df[' sales ']. shift ( 2 ) #view updated DataFrame print (df) day sales sales_previous_day sales_previous_day2 0 1 18 NaN NaN 1 2 10 18.0 NaN 2 3 14 10.0 18.0 3 4 13 14.0 10.0 4 5 19 13.0 14.0 5 6 24 19.0 13.0 6 7 25 24.0 19.0 7 8 29 25.0 24.0 8 9 15 29.0 25.0 9 10 18 15.0 29.0
Sie können den gleichen allgemeinen Ansatz verwenden, um so viele Offset-Spalten hinzuzufügen, wie Sie möchten.
Hinweis : Um eine Primärspalte zu erstellen, verwenden Sie einfach negative Werte in der Funktion „shift()“ .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:
So löschen Sie Spalten in Pandas
So schließen Sie Spalten in Pandas aus
So wenden Sie eine Funktion auf ausgewählte Spalten in Pandas an
So ändern Sie die Spaltenreihenfolge in Pandas DataFrame