Pandas DataFrame DataFrame.shift() Função

Suraj Joshi 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.shift():
  2. Códigos de exemplo: DataFrame.shift() Função para Deslocar ao longo da linha
  3. Códigos de exemplo: DataFrame.shift() Função para Deslocar ao longo da Coluna
  4. Códigos de exemplo: DataFrame.shift Método com o parâmetro fill_value
Pandas DataFrame DataFrame.shift() Função

O método pandas.DataFrame.shift é utilizado para deslocar o índice de DataFrame por um número especificado de períodos com uma freqüência de tempo opcional.

Sintaxe de pandas.DataFrame.shift():

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

Parâmetros

periods Inteiro. Decide o número de períodos para alterar o índice, que pode ser negativo ou positivo.
freq DateOffset, tseries.offsets, timedelta, ou str. Parâmetro opcional utilizado para mudar os valores do índice sem realinhar os dados
axis deslocamento ao longo da linha (axis=0) ou coluna (axis=1)
fill_value valor escalar a ser utilizado para os valores em falta recentemente introduzidos.

Retornar

Ele retorna um objeto DataFrame com valores de índice deslocados.

Códigos de exemplo: DataFrame.shift() Função para Deslocar ao longo da linha

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

Aqui, definimos o valor de periods para 1, e isto desloca as linhas de DataFrame de cima para baixo por 1 unidade.

Enquanto se desloca para baixo, as linhas mais altas ficam vagas e são preenchidas por valores NaN por padrão.

Se quisermos deslocar as linhas de baixo para cima, podemos definir um valor negativo do 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

Ele desloca as linhas de baixo para cima por um período de 2.

Códigos de exemplo: DataFrame.shift() Função para Deslocar ao longo da Coluna

Se quisermos deslocar o eixo da coluna, definimos axis=1 no 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

Aqui, definimos o valor de periods para 1, e isto desloca as colunas de DataFrame da esquerda para a direita por 1 unidade.

Se quisermos deslocar o eixo da coluna da direita para a esquerda, definimos um valor negativo para o parâmetro períodos.

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

Desloca as colunas da direita para a esquerda pelo período de 1.

Códigos de exemplo: DataFrame.shift Método com o parâmetro fill_value

Nos exemplos anteriores, os valores em falta após o deslocamento são preenchidos com NaN por padrão. Também podemos preencher os valores em falta com outros valores em vez de NaN, utilizando o 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

Preenche todos os valores faltantes criados pelo método shift() com 4.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn