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.shift
Mé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