menangani missing values

Cara Menangani Missing Values di Project Data Science

Posted by

Missing values terjadi ketika tidak ada data yang terdeteksi untuk suatu fitur atau variabel pada sampel pengamatan tertentu di dataset. Missing values biasanya muncul sebagai “NaN”, “?”, atau tidak ada nilainya sama sekali alias blank cell.

Cara Menangani Missing Values

Dalam contoh gambar di atas, fitur normalized-losess memiliki missing values yang direpresentasikan dengan tanda tanya (?).

Lalu bagaimana caranya menangani data yang memiliki missing values?

Ada banyak cara yang dapat digunakan untuk menangani missing values. Namun tentunya penanganan missing values ini harus disesuaikan dengan kondisi datanya atau fitur apa yang memiliki missing values.

Berikut beberapa opsi yang dapat dilakukan untuk menangani missing values.

Baca juga: Mengecek Tipe dan Distribusi Data di Pandas Python

Memeriksa kembali sumber data

Pertama, cek lagi sumber yang digunakan untuk mengumpulkan data.

Misalnya jika data dikumpulkan oleh seseorang ataupun kelompok, pastikan apakah orang atau kelompok yang mengumpulkan data tersebut dapat me-review data dan mendapatkan nilai apa yang seharusnya terisi disitu.

Tentunya akan lebih bagus jika kita bisa mendapatkan nilai yang sebenarnya untuk setiap missing values.

Menghapus missing values

Jika kita tidak mengetahui nilai yang, opsi yang mungkin adalah kita bisa menghapus data yang mengandung missing values.

Ada dua pilihan dalam menghapus missing values yaitu menghapus variabel atau kolom yang mengandung missing values atau menghapus beberapa baris data yang mengandung missing values.

Menghapus beberapa baris data bisa menjadi pilihan terbaik jika kita hanya memiliki sedikit data yang mengandung missing values. Jika kita memilih menghapus kolom atau variabel, pastikan bahwa variabel tersebut bukan merupakan variabel atau fitur yang penting.

Lalu bagaimana cara menghapus missing values di Python?

Library Pandas di Python memiliki built-in method yaitu dropna() untuk menghapus missing values yang direpresentasikan dengan NaN.

dataframe.dropna()

Pada dasarnya, method dropna() bisa digunakan untuk menghapus baris atau kolom yang mengandung missing values. Kita hanya perlu menentukan axis-nya, dimana 0 untuk menghapus baris dan 1 untuk menghapus kolom.

Baca juga: Cara Import dan Export Data di Python

Misalnya kita punya dataframe df yang memiliki missing values (NaN) seperti pada gambar di bawah ini.

Cara Menangani Missing Values

Sekarang perhatikan contoh penggunaannya.

Menghapus semua baris yang memiliki nilai NaN

df.dropna(axis=0)

Output:

Menghapus Missing Values

Menghapus semua kolom yang memiliki nilai NaN

df.dropna(axis=1)

Output:

Menghapus Missing Values

Menghapus baris yang memiliki nilai NaN untuk kolom C

df.dropna(subset=["C"], axis=0)

Output:

Menghapus Missing Values

Replace missing values

Dibandingkan dengan menghapusnya, mengganti nilai missing values adalah pilihan yang lebih baik karena tidak ada data yang terbuang. Namun, tentu saja ada kekurangannya dimana data tersebut menjadi kurang akurat karena diisi dengan nilai tebakan.

Baca juga: Pengenalan Library Python Untuk Data Science

Secara umum, mengganti sebuah nilai di dataframe Python adalah sebagai berikut.

dataframe.replace(nilai_yang_diganti, nilai_baru)

Nilai standar yang biasanya digunakan untuk menggantikan missing values adalah dengan nilai rata-rata dari seluruh nilai dalam variabel atau kolom tersebut.

Misalnya kita akan replace missing values di kolom C dengan nilai rata-rata (mean). Yang pertama kita lakukan adalah mencari mean dari kolom C menggunakan method mean(), kemudian mengganti NaN di kolom C dengan mean menggunakan method replace().

mean = df["C"].mean()
df["C"] = df["C"].replace(np.nan, mean)
df

Output:

Replace Missing Values

Lalu bagaimana jika variabel yang mengandung missing values merupakan variabel non-numerik?

Jika variabelnya non-numerik, kita bisa mengganti missing values dengan nilai modus atau nilai yang paling banyak muncul dalam kolom tersebut. Caranya mirip seperti di atas, namun menggunakan method mode() untuk mencari modusnya.

Kita juga mungkin dapat menemukan cara yang lebih baik untuk menebak missing values selain menggunakan nilai rata-rata (mean) maupun modus (mode) misalnya dengan menggunakan fungsi atau metode lain yang lebih tepat setelah melihat hubungannya dengan variabel lain.

Baca juga: Pengenalan Arsitektur Matplotlib Python

Membiarkan missing values

Dalam beberapa kasus, kita mungkin akan memilih membiarkan missing values tersebut tanpa memberikan penanganan apapun. Alasannya, mungkin data tersebut tetap akan berguna meskipun ada fitur yang hilang.

Pada akhirnya, semuanya tergantung dari apa yang ingin dicapai atau diperoleh dari analisis tersebut. Pertimbangkanlah opsi-opsi yang memiliki pengaruh lebih sedikit terhadap keseluruhan data.

Semoga bermanfaat..