top of page
bg-grid 1.png

Tutorial Python Dropna untuk Menangani Missing Values

Begini tutorial Python dropna untuk menangani missing values, lengkap!

Data Analytics

RevoU Staff

Mau Belajar

Data Analytics

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

Memulai perjalanan dalam analisis data dengan Python sering kali dihadapkan pada tantangan umum: bagaimana menangani data yang tidak lengkap atau missing values.


Fungsi dropna() dari library Pandas menjadi salah satu toolkit paling efektif dan mudah digunakan untuk mengatasi masalah ini. Secara sederhana, dropna() membantu menghapus baris atau kolom dari DataFrame yang mengandung nilai kosong atau NaN (Not a Number).


Mengapa ini penting? Dalam analisis data, kebersihan dan keakuratan data sangat memengaruhi hasil analisis. Dengan menghilangkan nilai yang tidak ada, kamu dapat membuat keputusan lebih tepat berdasarkan data yang tersedia. Misalnya, saat menganalisis data survei konsumen, menghapus respons yang tidak lengkap dapat membantu memfokuskan analisis pada data yang lebih relevan dan terpercaya.


Di artikel berikut, kita akan menggali lebih dalam tentang bagaimana dropna() dapat membersihkan dataset kamu, memastikan analisis yang dilakukan tidak hanya lebih cepat tetapi juga lebih akurat.


Kita juga akan mengeksplorasi berbagai parameter dan teknik yang dapat digunakan dengan dropna(). Selamat membaca!


Cara Mencari Missing Values


Menemukan missing values dalam dataset merupakan langkah penting sebelum memutuskan bagaimana menanganinya.


Dalam Python, menggunakan library Pandas, kita dapat dengan mudah mengidentifikasi baris atau kolom yang memiliki nilai yang hilang. Berikut beberapa cara untuk mencari missing values di sebuah DataFrame:


Langkah 1: menggunakan isna() untuk mendeteksi missing values


Kita akan menggunakan fungsi isna() untuk mengecek di mana missing values berada dalam DataFrame.

import pandas as pd

# Membuat DataFrame
data = {
 'ID Pelanggan': [1, 2, 3, 4, 5],
 'Nama': ['Budi', 'Dian', 'Fajar', 'Eka', 'Citra'],
 'Umur': [29, None, 35, 42, None],
 'Rating': [4.5, 4.0, None, 5.0, 3.5]
}

df = pd.DataFrame(data)

# Mendeteksi missing values
missing_values = df.isna()
print(missing_values)

Output:


Langkah 2: menghitung jumlah missing values di setiap kolom


Selanjutnya, kita akan menghitung jumlah missing values untuk setiap kolom.

# Menghitung jumlah missing values di setiap kolom
missing_count = df.isna().sum()
print(missing_count)

Output:

Nama 0

Umur 2

Rating 1


Langkah 3: menampilkan baris dengan missing values


Kita juga bisa menampilkan baris-baris yang memiliki missing values untuk analisis lebih lanjut.

# Menampilkan baris dengan missing values
rows_with_missing = df[df.isna().any(axis=1)]
print(rows_with_missing)

Output:


Cara Menangani Missing Values


Dalam menangani missing values, ada beberapa metode yang dapat kamu gunakan, tergantung pada situasi dan kebutuhan analisis data.


Dengan contoh tabel data yang sama, berikut cara umum untuk mengatasi masalah ini:


#1 Menggunakan dropna


Berikut beberapa cara dasar penggunaan dropna() untuk menghapus missing values:


Menghapus baris yang mengandung missing values


Ini adalah penggunaan yang paling umum dari dropna(), menghapus setiap baris di DataFrame yang mengandung setidaknya satu nilai NaN.

import pandas as pd

data = {
 'ID Pelanggan': [1, 2, 3, 4, 5],
 'Nama': ['Budi', 'Dian', 'Fajar', 'Eka', 'Citra'],
 'Umur': [29, None, 35, 42, None],
 'Rating': [4.5, 4.0, None, 5.0, 3.5]
}
df = pd.DataFrame(data)

# Menghapus baris yang mengandung nilai NaN
df_cleaned = df.dropna()
print(df_cleaned)

Output:


Menghapus kolom yang mengandung missing values


Kamu juga bisa memilih untuk menghapus kolom yang mengandung missing values dengan menentukan axis=1.

# Menghapus kolom yang mengandung nilai NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)

Output:


Menyesuaikan penghapusan dengan parameter tambahan


  • how: 'any' (default) menghapus baris/kolom jika terdapat setidaknya satu NaN, sedangkan 'all' hanya jika semua nilai adalah NaN.

  • thresh: batas minimum non-NaN values yang harus ada agar baris/kolom tidak dihapus.

  • subset: memungkinkan spesifikasi kolom tertentu untuk diperiksa missing values.

# Menghapus baris dimana kolom 'Umur' dan 'Rating' keduanya memiliki NaN
df_custom = df.dropna(subset=['Umur', 'Rating'], how='all')
print(df_custom)

Output:


#2 Metode lain menangani missing values


Selain dropna(), ada beberapa metode lain untuk menangani missing values:


Menggunakan fillna


Metode fillna() mengisi missing values dengan nilai tertentu yang kamu spesifikasikan. Contoh:

# Mengisi missing values dengan '0'
df_filled = df.fillna(0)

Output:


Teknik Interpolasi


Interpolasi adalah teknik untuk mengestimasi nilai yang hilang berdasarkan nilai lain yang berdekatan dalam data. Contoh:

# Menggunakan interpolasi linier
df_interpolated = df.interpolate(method='linear')

Output:


Mengganti dengan nilai rata-rata atau median


Mengganti missing values dengan rata-rata atau median kolom merupakan cara populer untuk mempertahankan distribusi data.


Saat menggunakan fillna untuk mengganti nilai NaN, penting untuk memastikan nilai pengganti sesuai dengan tipe data kolom tersebut. Jika kolom berisi data numerik, isi dengan nilai numerik; jika kolom berisi teks, gunakan teks sebagai pengganti. Langkah ini penting untuk menghindari kesalahan dalam pengolahan data.


Contoh:

# Mengganti missing values dengan median dari kolom
df_median_filled = df.fillna(df.median())

Output:

FAQs (Frequently Asked Questions)


Apakah dropna() mengubah DataFrame asli atau menghasilkan yang baru?


Jika semua baris atau kolom dalam sebuah DataFrame memiliki setidaknya satu nilai NaN dan kamu menggunakan fungsi dropna() dengan parameter default how='any', semua baris atau kolom tersebut akan dihapus.


Artinya, DataFrame bisa menjadi kosong jika setiap baris atau kolom memang memiliki setidaknya satu nilai NaN.


Jika situasi seperti ini tidak diinginkan, kamu dapat menyesuaikan cara kerja dropna() sebagai berikut:

  • Menggunakan how='all' akan menghapus baris atau kolom hanya jika semua nilainya adalah NaN.

  • Mengatur thresh untuk menentukan jumlah minimum nilai non-NaN yang harus ada agar baris atau kolom tidak dihapus. Contoh, thresh=2 berarti baris atau kolom harus memiliki setidaknya dua nilai non-NaN untuk tidak dihapus.


Bagaimana cara menangani DataFrame yang memiliki tipe data campuran saat menggunakan dropna()?


Saat menghadapi DataFrame yang memiliki tipe data campuran, fungsi dropna() tetap dapat digunakan tanpa perlu penyesuaian khusus terkait tipe data. Fungsi ini berfokus pada identifikasi dan penghapusan nilai-nilai yang hilang (NaN atau None), terlepas dari tipe data kolomnya.


Namun, ada beberapa tips yang bisa kamu pertimbangkan ketika bekerja dengan DataFrame yang memiliki tipe data campuran:

  • Pastikan konsistensi data: sebelum mengaplikasikan dropna(), pastikan data telah dikonversi ke tipe yang konsisten di dalam tiap kolom jika diperlukan. Misalnya, terkadang kolom yang seharusnya berisi angka memiliki beberapa nilai yang tersimpan sebagai teks. Menggunakan fungsi konversi seperti pd.to_numeric() atau astype() dapat membantu menyamakan tipe data.

  • Periksa data: melakukan pemeriksaan seperti df.info() atau df.dtypes bisa memberi gambaran tentang tipe data di tiap kolom dan membantu identifikasi kolom mana yang memerlukan penanganan khusus.

  • Menggunakan parameter dengan tepat: jika tujuanmu adalah menghapus baris atau kolom berdasarkan missing values pada kolom tertentu yang memiliki tipe data tertentu, gunakan parameter subset untuk memfokuskan operasi dropna() pada kolom-kolom tersebut.

bottom of page