Como criar uma coluna de deslocamento no pandas (com exemplos)


Você pode usar a função shift() no pandas para criar uma coluna que exibe valores deslocados de outra coluna.

Esta função usa a seguinte sintaxe básica:

 df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )

Observe que o valor da função shift() indica o número de valores para os quais calcular o deslocamento.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Crie uma coluna de deslocamento no Pandas

Digamos que temos o seguinte DataFrame do pandas que mostra as vendas feitas por uma loja durante 10 dias consecutivos:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' sales ': [18, 10, 14, 13, 19, 24, 25, 29, 15, 18]})
#view DataFrame
print (df)

   day sales
0 1 18
1 2 10
2 3 14
3 4 13
4 5 19
5 6 24
6 7 25
7 8 29
8 9 15
9 10 18

Podemos usar a função shift() para criar uma coluna shift que exibe as vendas do dia anterior para cada linha:

 #add column that represents lag of sales column
df[' sales_previous_day '] = df[' sales ']. shift ( 1 )

#view updated DataFrame
print (df)

   day sales sales_previous_day
0 1 18 NaN
1 2 10 18.0
2 3 14 10.0
3 4 13 14.0
4 5 19 13.0
5 6 24 19.0
6 7 25 24.0
7 8 29 25.0
8 9 15 29.0
9 10 18 15.0

Veja como interpretar o resultado:

  • O primeiro valor na coluna de atraso é NaN , pois não há valor anterior na coluna de vendas .
  • O segundo valor na coluna de deslocamento é 18 , pois é o valor anterior na coluna Vendas .
  • O terceiro valor na coluna de deslocamento é 10 , pois é o valor anterior na coluna Vendas .

E assim por diante.

Observe que também podemos adicionar várias colunas de deslocamento ao DataFrame se quisermos:

 #add two lag columns
df[' sales_previous_day '] = df[' sales ']. shift ( 1 )
df[' sales_previous_day2 '] = df[' sales ']. shift ( 2 ) 

#view updated DataFrame
print (df)

   day sales sales_previous_day sales_previous_day2
0 1 18 NaN NaN
1 2 10 18.0 NaN
2 3 14 10.0 18.0
3 4 13 14.0 10.0
4 5 19 13.0 14.0
5 6 24 19.0 13.0
6 7 25 24.0 19.0
7 8 29 25.0 24.0
8 9 15 29.0 25.0
9 10 18 15.0 29.0

Você pode usar a mesma abordagem geral para adicionar quantas colunas de deslocamento desejar.

Nota : Para criar uma coluna primária, basta usar valores negativos na função shift() .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como deletar colunas no Pandas
Como excluir colunas no Pandas
Como aplicar uma função a colunas selecionadas no Pandas
Como alterar a ordem das colunas no Pandas DataFrame

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *