API · Pandas

Funzione Pandas DataFrame DataFrame.shift()

Il DataFrame.shift(). funzione sposta l'indice di DataFrame di un numero di periodi specificato.

In questa pagina

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.