Dataset missing values imputation
Menangani missing values dalam dataset adalah langkah penting dalam proses analisis data untuk memastikan kualitas dan akurasi hasil. Berikut adalah contoh kode Python yang menunjukkan cara mengidentifikasi dan mengatasi missing values menggunakan pustaka pandas dan scikit-learn.
1. Mengidentifikasi Missing Values
Langkah pertama adalah mendeteksi keberadaan missing values dalam dataset. Fungsi `isnull()` atau `isna()` dari pandas dapat digunakan untuk tujuan ini.
import pandas as pd # Contoh: Membuat DataFrame dengan missing values data = { 'Nama': ['Andi', 'Budi', 'Citra', 'Dewi'], 'Usia': [25, 30, None, 22], 'Kota': ['Jakarta', None, 'Bandung', 'Surabaya'] } df = pd.DataFrame(data) # Menampilkan jumlah missing values di setiap kolom print("Jumlah missing values per kolom:") print(df.isnull().sum())
Output:
Jumlah missing values per kolom: Nama 0 Usia 1 Kota 1 dtype: int64
2. Mengatasi Missing Values
Terdapat beberapa pendekatan untuk menangani missing values:
- Menghapus Data yang Mengandung Missing Values:
Jika jumlah missing values relatif kecil, Anda dapat menghapus baris atau kolom yang mengandung missing values menggunakan `dropna()`.
# Menghapus baris yang memiliki missing values df_cleaned = df.dropna() print(df_cleaned)
- Imputasi Missing Values:
Mengganti missing values dengan nilai tertentu seperti mean, median, atau modus.
- Mengisi dengan Mean (Rata-rata):
Cocok untuk data numerik tanpa outlier signifikan.
# Mengisi missing values pada kolom 'Usia' dengan mean df['Usia'].fillna(df['Usia'].mean(), inplace=True)
- Mengisi dengan Median:
Sesuai untuk data numerik dengan distribusi miring atau memiliki outlier.
# Mengisi missing values pada kolom 'Usia' dengan median df['Usia'].fillna(df['Usia'].median(), inplace=True)
- Mengisi dengan Modus (Nilai yang Paling Sering Muncul):
Berguna untuk data kategorikal.
# Mengisi missing values pada kolom 'Kota' dengan modus df['Kota'].fillna(df['Kota'].mode()[0], inplace=True)
- Menggunakan `SimpleImputer` dari scikit-learn:
Pendekatan ini memungkinkan imputasi yang lebih terstruktur dan dapat digunakan dalam pipeline machine learning.
from sklearn.impute import SimpleImputer import numpy as np # Inisialisasi imputer untuk mengisi missing values dengan mean imputer = SimpleImputer(missing_values=np.nan, strategy='mean') # Mengimputasi kolom 'Usia' df'Usia' = imputer.fit_transform(df'Usia')
SimpleImputer juga mendukung strategi lain seperti `median`, `most_frequent` (modus), dan `constant`. citeturn0search8
Catatan:
- Pemilihan metode imputasi harus disesuaikan dengan karakteristik data dan tujuan analisis.
- Setelah melakukan imputasi, penting untuk mengevaluasi kembali dataset untuk memastikan bahwa metode yang digunakan tidak memperkenalkan bias atau distorsi pada data.
- Untuk kasus yang lebih kompleks, seperti data dengan pola missing yang tidak acak, metode imputasi multivariat seperti `IterativeImputer` dari scikit-learn dapat dipertimbangkan.
Dengan memahami dan menerapkan teknik-teknik di atas, Anda dapat menangani missing values dalam dataset secara efektif, sehingga meningkatkan kualitas dan keandalan analisis data Anda.