Cara membuat kolom offset di pandas (dengan contoh)
Anda dapat menggunakan fungsi shift() di pandas untuk membuat kolom yang menampilkan nilai yang dipindahkan dari kolom lain.
Fungsi ini menggunakan sintaks dasar berikut:
df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )
Perhatikan bahwa nilai fungsi shift() menunjukkan jumlah nilai yang akan digunakan untuk menghitung pergeseran.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Buat Kolom Offset di Pandas
Katakanlah kita memiliki panda DataFrame berikut yang menunjukkan penjualan yang dilakukan oleh sebuah toko selama 10 hari berturut-turut:
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
Kita dapat menggunakan fungsi shift() untuk membuat kolom shift yang menampilkan penjualan hari sebelumnya untuk setiap baris:
#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
Berikut cara menafsirkan hasilnya:
- Nilai pertama pada kolom lag adalah NaN karena tidak ada nilai sebelumnya pada kolom penjualan .
- Nilai kedua pada kolom offset adalah 18 karena merupakan nilai sebelumnya pada kolom Penjualan .
- Nilai ketiga pada kolom offset adalah 10 karena merupakan nilai sebelumnya pada kolom Penjualan .
Dan seterusnya.
Perhatikan bahwa kita juga dapat menambahkan beberapa kolom offset ke DataFrame jika kita ingin:
#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
Anda dapat menggunakan pendekatan umum yang sama untuk menambahkan kolom offset sebanyak yang Anda inginkan.
Catatan : Untuk membuat kolom utama, cukup gunakan nilai negatif pada fungsi shift() .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Cara menghapus kolom di Pandas
Cara mengecualikan kolom di Pandas
Cara menerapkan fungsi ke kolom yang dipilih di Pandas
Bagaimana mengubah urutan kolom di Pandas DataFrame