Funzione Pandas DataFrame DataFrame.shift()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.shift():
  2. Codici di esempio: Funzione DataFrame.shift() per spostarsi lungo la riga
  3. Codici di esempio: Funzione DataFrame.shift() per spostarsi lungo la colonna
  4. Codici di esempio: Metodo DataFrame.shift con parametro fill_value
Funzione Pandas DataFrame DataFrame.shift()

Il metodo Pandas DataFrame.shift viene utilizzato per spostare l’indice di DataFrame di un numero specificato di periodi con una frequenza temporale opzionale.

Sintassi di pandas.DataFrame.shift():

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

Parametri

periods Numero intero. Decide il numero di periodi per spostare l’indice che può essere negativo o positivo
freq DateOffset, tseries.offsets, timedelta o str. Parametro facoltativo utilizzato per spostare i valori dell’indice senza riallineare i dati
axis sposta lungo la riga (axis = 0) o la colonna (axis = 1)
fill_value valore scalare da utilizzare per i valori mancanti di nuova introduzione.

Ritorno

Restituisce un oggetto DataFrame con valori di indice spostati.

Codici di esempio: Funzione DataFrame.shift() per spostarsi lungo la riga

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)

Produzione:

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

Qui, impostiamo il valore di periods su 1, e questo sposta le righe di DataFrame dall’alto verso il basso di 1 unità.

Durante lo spostamento verso il basso, le righe più in alto diventano vuote e vengono riempite con i valori NaN per impostazione predefinita.

Se vogliamo spostare le righe dal basso verso l’alto, possiamo impostare un valore negativo del parametro 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=-2)
print("Shifted DataFrame")
print(shifted_df)

Produzione:

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

Sposta le righe dal basso verso l’alto di un periodo di 2.

Codici di esempio: Funzione DataFrame.shift() per spostarsi lungo la colonna

Se vogliamo spostare l’asse della colonna, impostiamo axis=1 nel metodo shift().

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)

Produzione:

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

Qui, impostiamo il valore di periods su 1, e questo sposta le colonne di DataFrame da sinistra verso destra di 1 unità.

Se vogliamo spostare l’asse della colonna da destra verso sinistra, impostiamo un valore negativo per il parametro 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)

Produzione:

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

Sposta le colonne da destra a sinistra per il periodo di 1.

Codici di esempio: Metodo DataFrame.shift con parametro fill_value

Negli esempi precedenti, i valori mancanti dopo lo spostamento sono riempiti con NaN per impostazione predefinita. Possiamo anche riempire i valori mancanti con altri valori invece di NaN utilizzando il parametro fill_value.

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)

Produzione:

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

Riempie tutti i valori mancanti creati dal metodo shift() con 4.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn