Pandalarda ofset sütunu nasıl oluşturulur (örneklerle)
Başka bir sütundan kaydırılan değerleri görüntüleyen bir sütun oluşturmak için pandalarda Shift() işlevini kullanabilirsiniz.
Bu işlev aşağıdaki temel sözdizimini kullanır:
df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )
Shift() işlevinin değerinin, kaydırmanın hesaplanacağı değerlerin sayısını gösterdiğini unutmayın.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Pandalarda Ofset Sütunu Oluşturma
Diyelim ki bir mağazanın art arda 10 gün boyunca yaptığı satışları gösteren aşağıdaki pandalar DataFrame’e sahibiz:
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
Her satırda önceki günün satışlarını görüntüleyen bir kaydırma sütunu oluşturmak için Shift() işlevini kullanabiliriz:
#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
Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:
- Satış sütununda herhangi bir öncelik değeri bulunmadığından gecikme sütunundaki ilk değer NaN’dir .
- Ofset sütunundaki ikinci değer, Satış sütunundaki bir önceki değer olduğundan 18’dir .
- Ofset sütunundaki üçüncü değer, Satış sütunundaki bir önceki değer olduğundan 10’dur .
Ve benzeri.
İstersek DataFrame’e birden fazla ofset sütunu da ekleyebileceğimizi unutmayın:
#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
İstediğiniz kadar uzak sütun eklemek için aynı genel yaklaşımı kullanabilirsiniz.
Not : Birincil sütun oluşturmak için Shift() işlevindeki negatif değerleri kullanmanız yeterlidir.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar’daki sütunlar nasıl silinir
Pandalar’da sütunlar nasıl hariç tutulur?
Pandalar’da seçilen sütunlara bir işlev nasıl uygulanır?
Pandas DataFrame’de sütun sırası nasıl değiştirilir?