Función Pandas DataFrame DataFrame.shift()

Suraj Joshi 30 enero 2023
  1. La sintaxis de pandas.DataFrame.shift():
  2. Códigos de ejemplo: DataFrame.shift() Función de desplazamiento a lo largo de la fila
  3. Códigos de ejemplo: DataFrame.shift() Función para desplazar a lo largo de la columna
  4. Códigos de ejemplo: DataFrame.shift Método con el parámetro fill_value
Función Pandas DataFrame DataFrame.shift()

El método de Pandas DataFrame.shift se utiliza para desplazar el índice de DataFrame por un número determinado de períodos con una frecuencia de tiempo opcional.

La sintaxis de pandas.DataFrame.shift():

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

Parámetros

periods Entero. Decide el número de períodos para desplazar el índice que puede ser negativo o positivo
freq DateOffset, tseries.offsets, timedelta, o str. Parámetro opcional utilizado para desplazar los valores de los índices sin realinear los datos
axis desplazarse a lo largo de la fila (axis=0) o fila (axis=1)
fill_value valor escalar que se utilizará para los valores faltantes recientemente introducidos.

Retorna

Devuelve un objeto DataFrame con valores de índice desplazados.

Códigos de ejemplo: DataFrame.shift() Función de desplazamiento a lo largo de la fila

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)

Resultado:

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

Aquí, fijamos el valor de periods en 1, y esto desplaza las filas de DataFrame de la parte superior a la inferior en 1 unidad.

Mientras se desplaza hacia abajo, las filas superiores quedan vacías y se llenan con valores NaN por defecto.

Si queremos desplazar las filas desde abajo hacia arriba, podemos establecer un valor negativo del parámetro 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)

Resultado:

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

Desplaza las filas de abajo hacia arriba por un período de 2.

Códigos de ejemplo: DataFrame.shift() Función para desplazar a lo largo de la columna

Si queremos desplazar el eje de la columna, ponemos axis=1 en el método 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)

Resultado:

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

Aquí, ponemos el valor de periods en 1, y esto desplaza las columnas de DataFrame de la izquierda hacia la derecha en 1 unidad.

Si queremos desplazar el eje de la columna de la derecha hacia la izquierda, fijamos un valor negativo para el parámetro 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)

Resultado:

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

Desplaza las columnas de derecha a izquierda por el período de 1.

Códigos de ejemplo: DataFrame.shift Método con el parámetro fill_value

En los ejemplos anteriores, los valores que faltan después del desplazamiento se rellenan con NaN por defecto. También podemos llenar los valores perdidos con otros valores en lugar de NaN usando el parámetro 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)

Resultado:

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

Rellena todos los valores perdidos creados por el método shift() con 4.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn