Pandas: cara menggunakan ffill berdasarkan kondisi
Anda dapat menggunakan sintaks dasar berikut untuk menggunakan fungsi ffill() di panda untuk meneruskan nilai pengisian berdasarkan kondisi di kolom lain:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
Contoh khusus ini akan meneruskan nilai isian di kolom penjualan hanya jika nilai sebelumnya di kolom toko sama dengan nilai saat ini di kolom toko .
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Gunakan ffill berdasarkan kondisi di Pandas
Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang total penjualan yang dilakukan oleh dua toko ritel berbeda selama empat kuartal bisnis:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'B'], ' quarter ': [1, 2, 1, 3, 2, 4, 3, 4], ' sales ': [12, 22, 30, np.nan, 24, np.nan, np.nan, np.nan]}) #view DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 to 3 NaN 4 B 2 24.0 5 A 4 NaN 6 B 3 NaN 7 B 4 NaN
Perhatikan bahwa ada beberapa nilai NaN di kolom Penjualan .
Katakanlah kita ingin mengisi nilai NaN ini menggunakan nilai sebelumnya di kolom Penjualan , namun ingin memastikan nilainya sesuai dengan penyimpanan yang benar.
Kita dapat menggunakan sintaks berikut untuk melakukan ini:
#group by store and forward fill values in sales column df[' sales '] = df. groupby (' store ')[' sales ']. ffill () #view updated DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 A 3 22.0 4 B 2 24.0 5 A 4 22.0 6 B 3 24.0 7 B 4 24.0
Perhatikan bahwa nilai NaN di kolom Penjualan telah diganti dengan nilai Penjualan sebelumnya dan nilainya sesuai dengan penyimpanan yang benar.
Misalnya:
- Nilai NaN di posisi 3 indeks baris diganti dengan nilai 22 , yang merupakan nilai terbaru di kolom penjualan yang terkait dengan toko A.
- Nilai NaN di posisi 6 indeks baris diganti dengan nilai 24 , yang merupakan nilai terbaru di kolom penjualan yang terkait dengan toko B.
Dan seterusnya.
Catatan : Anda dapat menemukan dokumentasi lengkap fungsi pandas ffill() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
Cara menghitung nilai yang hilang di panda
Cara menghapus baris dengan nilai NaN di Pandas
Cara menghapus baris yang berisi nilai tertentu di Pandas