Jak utworzyć kolumnę przesuniętą w pandach (z przykładami)


Możesz użyć funkcji shift() w pandach, aby utworzyć kolumnę wyświetlającą wartości przesunięte z innej kolumny.

Ta funkcja wykorzystuje następującą podstawową składnię:

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

Należy pamiętać, że wartość funkcji shift() wskazuje liczbę wartości, dla których należy obliczyć przesunięcie.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: utwórz kolumnę przesuniętą w Pandach

Załóżmy, że mamy następującą ramkę danych pandy, która pokazuje sprzedaż dokonaną przez sklep w ciągu 10 kolejnych dni:

 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

Możemy użyć funkcji shift() , aby utworzyć kolumnę shift, która wyświetla sprzedaż z poprzedniego dnia dla każdego wiersza:

 #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

Oto jak zinterpretować wynik:

  • Pierwszą wartością w kolumnie opóźnienia jest NaN , ponieważ w kolumnie sprzedaży nie ma wcześniejszej wartości.
  • Druga wartość w kolumnie Przesunięcie to 18 , ponieważ jest to poprzednia wartość w kolumnie Sprzedaż .
  • Trzecia wartość w kolumnie Przesunięcie to 10 , ponieważ jest to poprzednia wartość w kolumnie Sprzedaż .

I tak dalej.

Pamiętaj, że jeśli chcemy, możemy również dodać wiele kolumn przesuniętych do ramki 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

Możesz zastosować to samo ogólne podejście, aby dodać dowolną liczbę kolumn przesuniętych.

Uwaga : Aby utworzyć kolumnę podstawową, po prostu użyj wartości ujemnych w funkcji shift() .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Jak usunąć kolumny w Pandach
Jak wykluczyć kolumny w Pandach
Jak zastosować funkcję do wybranych kolumn w Pandach
Jak zmienić kolejność kolumn w Pandas DataFrame

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *