Pandas DataFrame DataFrame.shift() Funktion

Suraj Joshi 30 Januar 2023
  1. Syntax von Pandas DataFrame.shift():
  2. Beispiel-Codes: DataFrame.shift() Funktion zum Verschieben entlang einer Zeile
  3. Beispiel-Codes: DataFrame.shift() Funktion zum Verschieben entlang einer Spalte
  4. Beispiel-Codes: DataFrame.shift Methode mit fill_value Parameter
Pandas DataFrame DataFrame.shift() Funktion

Die Methode Pandas DataFrame.shift wird verwendet, um den Index von DataFrame um eine festgelegte Anzahl von Perioden mit einer optionalen Zeitfrequenz zu verschieben.

Syntax von Pandas DataFrame.shift():

DataFrame.shift(periods=1, freq=None, axis=0, fill_value=None)

Parameter

periods Ganze Zahl. Entscheidet die Anzahl der Perioden, die den Index verschieben sollen, die negativ oder positiv sein können
freq DateOffset, tseries.offsets, timedelta oder str. Optionaler Parameter, der verwendet wird, um Indexwerte zu verschieben, ohne die Daten neu auszurichten
axis Verschiebung entlang der row (axis=0) oder column (axis=1)
fill_value skalarer Wert, der für neu eingeführte fehlende Werte zu verwenden ist.

Zurück

Es gibt ein DataFrame-Objekt mit verschobenen Indexwerten zurück.

Beispiel-Codes: DataFrame.shift() Funktion zum Verschieben entlang einer Zeile

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=1)
print("Shifted DataFrame")
print(shifted_df)

Ausgabe:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X    Y
0  NaN  NaN
1  1.0  4.0
2  2.0  1.0

Hier setzen wir den Wert von periods auf 1, und dies verschiebt die Zeilen des DataFrame von oben nach unten um 1 Einheit.

Während der Verschiebung nach unten werden die obersten Zeilen leer und standardmäßig mit NaN-Werten gefüllt.

Wenn wir Zeilen von unten nach oben verschieben wollen, können wir einen negativen Wert für den Parameter periods einstellen.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-2)
print("Shifted DataFrame")
print(shifted_df)

Ausgabe:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X    Y
0  3.0  8.0
1  NaN  NaN
2  NaN  NaN

Er verschiebt Zeilen von unten nach oben um eine Periode von 2.

Beispiel-Codes: DataFrame.shift() Funktion zum Verschieben entlang einer Spalte

Wenn wir die Säulenachse verschieben wollen, setzen wir axis=1 in der shift() Methode.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
shifted_df=df.shift(periods=1,axis=1)
print("Shifted DataFrame")
print(shifted_df)

Ausgabe:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
    X    Y
0 NaN  1.0
1 NaN  2.0
2 NaN  3.0

Hier setzen wir den Wert von periods auf 1, und dies verschiebt die Spalten von DataFrame von links nach rechts um 1 Einheit.

Wenn wir die Spaltenachse von rechts nach links verschieben wollen, setzen wir einen negativen Wert für den Parameter periods.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-1,axis=1)
print("Shifted DataFrame")
print(shifted_df)

Ausgabe:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
     X   Y
0  4.0 NaN
1  1.0 NaN
2  8.0 NaN

Er verschiebt Spalten von rechts nach links um die Periode von 1.

Beispiel-Codes: DataFrame.shift Methode mit fill_value Parameter

In den vorherigen Beispielen werden die fehlenden Werte nach der Verschiebung standardmäßig mit NaN gefüllt. Wir können die fehlenden Werte auch mit anderen Werten anstelle von NaN füllen, indem wir den Parameter fill_value verwenden.

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

shifted_df=df.shift(periods=-1,
                    axis=1,
                    fill_value=4)
print("Shifted DataFrame")
print(shifted_df)

Ausgabe:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Shifted DataFrame
   X  Y
0  4  4
1  1  4
2  8  4

Er füllt alle fehlenden Werte, die durch die shift()-Methode erzeugt wurden, mit 4.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn