Halo Sobat Exsight! Pada artikel sebelumnya telah dibahas tentang apa itu Missing Value pada Data Statistik. Selanjutnya pada artikel ini akan dibahas terkait tutorial Penanganan Missing Value pada Data dengan Python.
Dimana untuk tutorial kali ini akan berfokus pada penanganan Missing Value dengan cara penghapusan baris data missing maupun dengan cara imputasi nilai berdasarkan mean, median, dan modus. Yuk langsung saja simak tutorialnya dengan seksama yaa!
Tutorial Python
Studi Kasus
Studi kasus yang akan kita gunakan dalam hal ini menggunakan data Melbourne Housing Snapshot yang didapatkan dari situs Kaggle. Data terdiri atas 21 variabel dan 13. 580 observasi.
Load Library Python
Tahapan paling awal sebelum running syntax di Python yaitu melakukan load library . Apabila kamu masih belum memiliki library untuk penanganan missing value , maka dapat menginstall terlebih dahulu dengan cara
pip install (nama library nya)
Adapun beberapa library yang digunakan terdiri atas:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Load Data
Setelah melakukan load data di Python. Data yang diinput diberi nama sebagai data yang berasal dari file Melbourne Housing. Perlu diperhatikan untuk jenis file data yang diinput dalam format CSV, hal ini dengan tujuan untuk mempermudah pengguna. Syntax yang digunakan adalah sebagai berikut
data = pd.read_csv('Melbourne Housing.csv')
data
Pengecekan Adanya Missing Value
Mula-mula kita perlu memastikan missing value pada data terdapat pada variabel apa saja
#Jumlah Missing Value pada Tiap Variabel
np.sum(data.isnull())
Berdasarkan hasil output pada Gambar 2. diketahui bahwa variabel-variabel yang terdapat missing value yaitu variabel Car, BuildingArea, YearBuilt, dan CouncilArea.
Cek Persentase Missing Value
Tahapan berikutnya kita perlu melakukan cek persentase missing value. Apabila missing value pada suatu variabel kurang dari 20% maka dilakukan penghapusan baris data, namun jika missing value lebih dari 20% maka dilakukan imputasi nilai.
null_percentage = missing_cols/13580*100
print(null_percentage.sort_values())
Gambar 3. menunjukkan hasil bahwa variabel Car dan variabel CouncilArea memiliki missing value kurang dari 20%, maka dari itu dilakukan penghapusan baris yang missing pada kedua variabel tersebut.
Penanganan Missing Value dengan Penghapusan
data.dropna(subset=['Car', 'CouncilArea'], axis=0)
Gambar 4. menunjukkan bahwa setelah dilakukan penghapusan baris yang missing pada variabel Car dan variabel CouncilArea, data yang semula terdiri atas 13.580 baris menjadi 12.211 baris.
Pengecekan Outlier
Tahapan berikutnya kita akan melakukan penanganan missing value dengan imputasi pada variabel YearBuilt dan variabel BuildingArea. Apabila kita perhatikan variabel YearBuilt dan variabel BuildingArea merupakan variabel numerik, sehingga jenis imputasi yang mungkin yaitu imputasi mean atau imputasi median.
Penggunaan imputasi mean dan imputasi median tergantung pada ada atau tidaknya outlier. Jika terdapat outlier pada suatu variabel maka jenis imputasi yang tepat digunakan yaitu imputasi median. Maka dari itu dilakukan pengecekan outlier menggunakan Boxplot sebagai berikut.
sns.boxplot(x=data['BuildingArea'])
sns.boxplot(x=data['YearBuilt'])
Berdasarkan Gambar 5. diketahui bahwa terdapat outlier pada variabel BuildingArea dan variabel Built, sehingga jenis imputasi yang tepat digunakan yaitu imputasi median.
Penanganan Missing Value dengan Imputasi Median
Perhitungan nilai median dilakukan dengan syntax sebagai berikut
#Menghitung Nilai Median Variabel BuidingArea dan YearBuilt
med_BuildingArea = data['BuildingArea'].median()
med_YearBuilt = data['YearBuilt'].median()
Nilai median untuk variabel BuildingArea yaitu sebesar 124 sedangkan median untuk variabel YearBuilt yaitu sebesar 1970. Selanjutnya kita lakukan imputasi missing value berdasarkan median dari variabel BuidingArea dan YearBuilt.
data['BuildingArea'].fillna(med_BuildingArea, inplace=True)
data['YearBuilt'].fillna(med_YearBuilt, inplace=True)
Tahapan terakhir, kita lakukan kembali pengecekan missing value pada data
np.sum(data.isnull())
Berdasarkan Gambar 6. dapat kita simpulkan bahwa sudah tidak ada lagi missing value pada data Melbourne Housing.
Referensi
Sampai disini dulu penjelasan terkait Penanganan Missing Value pada Data dengan Python. Apabila masih terdapat hal-hal yang dibingungkan bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya.