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