Pandas DataFrame DataFrame.shift() Função
- 
          
            Sintaxe de 
pandas.DataFrame.shift(): - 
          
            Códigos de exemplo: 
DataFrame.shift()Função para Deslocar ao longo da linha - 
          
            Códigos de exemplo: 
DataFrame.shift()Função para Deslocar ao longo da Coluna - 
          
            Códigos de exemplo: 
DataFrame.shiftMétodo com o parâmetrofill_value 
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 is a backend software engineer at Matrice.ai.
LinkedIn