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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *