missing value dengan pandas
Python

Python Pandas : Cara Menangani Missing Value

Missing value umumnya selalu terjadi di dalam dataset. Missing value harus ditangani sebelum dataset diproses dengan machine learning

Ada beberapa cara menangani missing value adalah seperti menghapusnya atau menggantinya dengan nilai lain

Mencari Missing Value

Jika data terdiri dari ratusan, ribuan bahkan jutaan baris tentu akan susah dalam menemukan nilai field yang kosong

Python Pandas memungkinkan kita dapat menemukan missing value secara cepat dengan fungsi isnull()isna()

fungsi isna() mengembalikan nilai boolean sedangkan fungsi kebalikannya adalah notna()

Disini kita akan coba langsung menggunakan dataset terkenal yaitu dataset titanic untuk mencari nilai yang kosong dan bagaimana cara menghandelnya

Pertama download dulu datasetnya

Baca dataset dan gunakan fungsi isna() dan notna()

Hasil hasil fungsi diatas akan menjadi kurang dipahami karena banyaknya baris dan kolom data

Lakukan agregasi data agar mudah dipahami dengan fungsi sum()

Dengan bantuan fungsi isna() dan sum() kita tahu bahwa dalam dataset semua kolom tidak ada nilai yang kosong kecuali kolom Age dengan 177 missing value, Kolom Cabin 687 dan kolom Embarked 2

Menangani Missing Value

Secara umum ada 2 cara untuk menangani missing value yaitu dengan menghapusnya atau menggantinya dengan nilai yang lain

Kita dapat gunakan fungsi dropna() untuk menghapus data yang tidak memiliki nilai dan fungsi fillna() untuk mengisi nilai yang kosong

Pada dataset titanic, terdapat 3 kolom yang memiliki missing value yaitu Age, Cabin dan Embarked

Kita akan perlakukan setiap kolom dengan beda penanganan (ini sekedar contoh yaa :D)

  1. Missing value di kolom Age akan diisi dengan rata-rata dari semua umur penumpang (menggunakan mean)
  2. Missing value di kolom Cabin akan dihapus
  3. Missing value di kolom Embarked akan diisi dengan nilai Embarked yang paling banyak muncul di dataset (menggunakan modus)

Missing Value Kolom Age

Pertama, kita duplikat dulu dataframe-nya

kedua, cari nilai rata-rata dari kolom Age

Ketiga, Isikan nilai kosong di kolom Age dengan nilai rata-rata yang didapatkan

Keempat, cek kembali apakah masih terdapat missing value di kolom Age

# Langkah 1
rata_umur = df['Age'].mean()
# Langkah 2
df['Age'] = df['Age'].fillna(rata_umur)
# Langkah 3
df['Age'].isna().sum()

Missing Value Kolom Cabin

Untuk kolom Cabin kita akan hapus nilai yang kosong

Perhatian, Jika kita hapus missing value yang ada di kolom maka baris tersebut akan dihapus juga

Jadi misal kolom Cabin mempunyai missing value sebanyak 687 dan jika kita hapus maka 687 baris dari dataset akan terhapus

Karena ini hanya contoh penanganan maka abaikan saja 😀

Baiknya yang dihapus adalah kolom Cabin saja karena terlalu banyak missing value

Oke, pertama kita duplikat dan gunakan fungsi dropna() untuk menghapus missing value

df.drop('Cabin', axis=1, inplace=True)

Missing Value Kolom Embarked

Untuk kolom Embarked terdapat 2 missing value

Kita akan isi 2 nilai tadi dengan nilai yang paling banyak muncul mengingat tipe data dari kolom ini adalah kategorical data yang berupa string S, C dan Q

Pertama, kita duplikat dulu dataframe-nya

kedua, cari nilai paling banyak muncul dari kolom Embarked

Ketiga, Isikan nilai kosong di kolom Embarked dengan nilai modus yang didapatkan

Keempat, cek kembali apakah masih terdapat missing value di kolom Embarked

# Langkah 1
modus = df['Embarked'].mode()[0]
# Langkah 2
df['Embarked'] = df['Embarked'].fillna(modus)
# Langkah 3
df['Embarked'].isna().sum()

Selamat anda telah berhasil mengetahui cara menemukan missing value di dataset dan bagaimana cara menanganinya

Untuk menangani missing value tentunya perlu diidentifikasi terlebih dahulu apakah data tersebut akan dihapus atau direplace

Leave a Reply

Your email address will not be published. Required fields are marked *