Membersihkan Data Kotor dengan Pandas: Teknik Handling Missing Values dan Duplicates
Dataset dalam proyek Data Science jarang tiba dalam kondisi sempurna. Missing values dan duplikat merupakan dua masalah paling umum yang dapat mengacaukan analisis dan model. Pandas menyediakan tools yang powerful untuk menangani kedua masalah ini secara efisien.
Mengidentifikasi Missing Values
Sebelum membersihkan data, kita perlu memahami sejauh mana missing values tersebar di dataset. Pandas menawarkan beberapa metode untuk deteksi.
Gunakan isnull() atau isna() untuk memeriksa nilai yang hilang:
import pandas as pd
# Membaca dataset
df = pd.read_csv('data.csv')
# Melihat jumlah missing values per kolom
print(df.isnull().sum())
# Melihat persentase missing values
print(df.isnull().mean() * 100)Method info() memberikan gambaran cepat tentang non-null count untuk setiap kolom. Jika terdapat perbedaan antara total rows dan non-null count, kolom tersebut memiliki missing values.
Strategi Handling Missing Values
Ada tiga pendekatan utama untuk menangani missing values: deletion, imputation, dan prediction. Pilihan bergantung pada konteks data dan tujuan analisis.
Deletion adalah pendekatan paling sederhana. Gunakan ketika missing values berjumlah kecil dan terdistribusi secara acak.
Data Science with Python
Master the art of data analysis, visualization, and predictive modeling.
# Menghapus rows dengan missing values
df_clean = df.dropna()
# Menghapus kolom dengan missing values di atas threshold
df_clean = df.dropna(axis=1, thresh=len(df) * 0.7)Imputation mengisi missing values dengan nilai estimasi. Untuk numerical data, mean atau median adalah pilihan yang umum. Untuk categorical data, gunakan mode.
# Imputasi dengan mean untuk kolom numerik
df['age'].fillna(df['age'].mean(), inplace=True)
# Imputasi dengan median untuk data dengan outliers
df['salary'].fillna(df['salary'].median(), inplace=True)
# Forward fill untuk time series
df['value'].fillna(method='ffill', inplace=True)Prediction menggunakan machine learning untuk memprediksi nilai yang hilang berdasarkan kolom lain. Pendekatan ini lebih kompleks namun sering memberikan hasil lebih akurat untuk dataset dengan pola yang jelas.
Mengelola Duplikat
Duplikat dalam dataset dapat terjadi karena proses pengumpulan data yang berulang atau merge operation yang tidak sempurna. Pandas menyediakan method duplicated() untuk deteksi dan drop_duplicates() untuk penghapusan.
# Melihat duplikat berdasarkan semua kolom
duplicates = df[df.duplicated()]
# Melihat duplikat dengan keep parameter
# keep='first': tandai duplikat kecuali yang pertama
# keep='last': tandai duplikat kecuali yang terakhir
# keep=False: tandai semua duplikat
duplicates = df[df.duplicated(keep=False)]Untuk menghapus duplikat:
# Hapus duplikat berdasarkan semua kolom
df_clean = df.drop_duplicates()
# Hapus berdasarkan subset kolom spesifik
df_clean = df.drop_duplicates(subset=['email', 'phone'])
# Pertahankan entry terakhir, bukan yang pertama
df_clean = df.drop_duplicates(keep='last')Best Practices Data Cleaning
Beberapa prinsip penting dalam data cleaning: dokumentasikan setiap langkah transformation, buat backup sebelum modifikasi, dan lakukan validasi hasil.
Selalu visualisasikan distribusi data sebelum dan sesudah cleaning untuk memastikan transformasi tidak mengubah karakteristik fundamental dataset. Gunakan profiling tools seperti pandas-profiling untuk insight komprehensif.
Pembersihan data adalah 70% dari pekerjaan Data Scientist. Menguasai teknik-teknik ini dengan baik akan meningkatkan kualitas model dan keandalan insight bisnis secara signifikan.
Mau memperdalam skill Data Science secara sistematis? Bergabunglah dengan Data Science Bootcamp di Rumah Coding. Kurikulum praktis dengan proyek real-world dan mentorship dari praktisi industri.
Course Terkait
Data Science with Python
Master the art of data analysis, visualization, and predictive modeling.
E-commerce Sales Dashboard
- Data Cleaning Pipeline
- Interactive Charts
- Sales Forecasting Model
Deep Learning Bootcamp
A beginner-friendly, highly interactive bootcamp designed to take you from foundational concepts to deploying real-world Artificial Intelligence applications. Through a completely project-based approach, you will master the core of Deep Learning, Artificial Neural Networks, and Computer Vision using Python and TensorFlow, ultimately building a professional-grade AI web application for your portfolio.
GreenGuard: Intelligent Plant Disease Diagnosis Web App
- Interactive Image Upload UI: A clean, user-friendly interface built with Streamlit that supports drag-and-drop image uploads directly from a computer or mobile phone.
- Real-Time AI Inference: Utilizes a lightweight, optimized CNN model (like MobileNetV2) to process the image and return a diagnosis in seconds without heavy server load.
- Confidence Scoring Dashboard: Visually displays the model's prediction probability (e.g., "95% confident this is Tomato Late Blight") using interactive progress bars or charts.
LLM Bootcamp
This project-based bootcamp is designed for beginners to dive practically into the world of Large Language Models (LLMs). Through hands-on building, you will learn how to interact with top-tier AI APIs, master prompt engineering, orchestrate complex workflows using LangChain, and implement Retrieval-Augmented Generation (RAG) to query your own documents. By the end of this course, you will have the skills to build, test, and deploy a fully functional, custom AI web application.
Domain-Specific AI Knowledge Assistant
- Dynamic Document Processing: A sidebar interface allowing users to upload new PDF or TXT files, which the app automatically chunks, embeds, and stores in the vector database.
- Context-Aware Chat UI: A modern chat interface built with Streamlit that maintains conversation history, allowing users to ask follow-up questions naturally.
- Strict Guardrails (Anti-Hallucination): System instructions designed so the AI politely declines to answer questions that fall outside the context of the uploaded documents.