Как создать столбец смещения в pandas (с примерами)


Вы можете использовать функциюshift () в pandas для создания столбца, в котором отображаются значения, сдвинутые из другого столбца.

Эта функция использует следующий базовый синтаксис:

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

Обратите внимание, что значение функции сдвиг() указывает количество значений, для которых рассчитывается сдвиг.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: создание столбца смещения в Pandas

Допустим, у нас есть следующий DataFrame pandas, который показывает продажи магазина за 10 дней подряд:

 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

Мы можем использовать функцию сдвиг() для создания столбца смены, который отображает продажи предыдущего дня для каждой строки:

 #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

Вот как интерпретировать результат:

  • Первое значение в столбце задержки — NaN , поскольку в столбце продаж нет предыдущего значения.
  • Второе значение в столбце «Смещение» — 18 , поскольку это предыдущее значение в столбце «Продажи» .
  • Третье значение в столбце «Смещение» равно 10 , поскольку это предыдущее значение в столбце «Продажи» .

И так далее.

Обратите внимание, что мы также можем добавить несколько столбцов смещения в DataFrame, если захотим:

 #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

Вы можете использовать тот же общий подход, чтобы добавить столько столбцов смещения, сколько захотите.

Примечание . Чтобы создать основной столбец, просто используйте отрицательные значения в функцииshift() .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Как удалить столбцы в Pandas
Как исключить столбцы в Pandas
Как применить функцию к выбранным столбцам в Pandas
Как изменить порядок столбцов в Pandas DataFrame

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *