Як створити зміщений стовпець у pandas (з прикладами)


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

Ця функція використовує такий базовий синтаксис:

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

Зауважте, що значення функції shift() вказує на кількість значень, для яких обчислюється зсув.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: Створення стовпця зсуву в 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

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

 #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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *