Data Quality with Python for Beginner - nurkomarhidaya/DQLab GitHub Wiki
Data Profiling
Pengantar
Aku dipanggil ke ruangan Kroma, sang kepala divisi! Gugup? Pastinya. Penasaran? Apalagi. Setelah diam beberapa saat, Kroma menunjukkan lembar kerjaku di layar laptopnya.
“Setelah mengecek hasil analisis kamu, saya rasa ini perlu sedikit revisi. Coba lakukan analisis terhadap datanya secara lebih mendalam menggunakan EDA, termasuk data profiling. Bisa?” pinta Kroma di ruangannya.
Aku memang sudah terbiasa mendengar kata ‘revisi’ dari Senja dan Andra, tapi tetap saja kali ini lebih menegangkan karena langsung dari Kroma, si kepala divisi! Aku hendak mengangguk tapi kuingat kalau aku belum sempat mempelajari mengenai data profiling bersama Senja. Seperti mampu membaca keraguanku, Kroma mencondongkan tubuhnya ke arahku dan berujar, “Sekaligus saya kirimkan referensi lengkap dan contoh bagaimana data profiling dilakukan.”
Aku pun keluar dari ruangan membawa ‘kado’ berupa revisi.
Senangnya kalau punya kepala divisi yang memberikan revisi sekaligus solusi. Setelah kembali ke meja, aku langsung membuka tautan referensi yang diberikan Kroma. Aku memutuskan untuk mempelajarinya dulu sebelum melakukan revisi pekerjaan.
Apa Itu Data Profiling ?
Pada bagian sebelumnya, aku sudah mempelajari mengenai exploratory data analysis, dimana Exploratory Data Analysis (EDA) adalah menggunakan pendekatan statistik yang bertujuan untuk menemukan dan meringkas sebuah dataset, mengetahui struktur dan hubungan antar variabel dalam dataset. EDA merupakan proses pre-analysis baik untuk descriptive analysis maupun predictive analysis.
Dalam bab ini, aku akan fokus pada satu aspek EDA, yaitu: Data Profiling!
Data profiling adalah kegiatan merangkum dataset menggunakan statistik deskriptif. Tujuan dari pembuatan data profiling adalah untuk memiliki pemahaman yang kuat tentang data sehingga dapat mulai menyusun framework analisis dan memvisualisasikan data.
Importing Data
Sebagai langkah pertama yang harus dilakukan adalah inisialisasi Library dan mengimport dataset tersebut ke dalam Python menggunakan library Pandas dan diassign sebagai retail_raw.
Library yang perlu diimport adalah: (1) pandas, (2) numpy, (3) io, dan (4) pandas_profiling. Untuk dua libray yang pertama importlah sebagai aliasnya.
Datasetnya tersedia di: 'https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced_data_quality.csv'.
Inspeksi tipe Data
Descriptive Statistics - Part 1
Descriptive Statistics - Part 2
Descriptive Statistics - Part 3
Descriptive Statistics - Part 4
Descriptive Statistics - Part 5
Descriptive Statistics - Part 6
Pengantar Profiling Libraries
Data Cleansing
Apa Itu Data Cleansing ?
Fiuh! Materi tadi benar-benar penuh dengan latihan-latihan. Walaupun latihannya singkat, kalau jumlahnya banyak, ternyata menguras energi dan pikiranku juga. Apa mungkin Kroma sengaja memberikan referensi yang penuh latihan agar revisian aku nantinya bisa lebih lancar? Bisa juga caranya.
Aku mengecek sisa materi referensi yang diberikan, masih terdapat pembahasan seputar “Data Cleansing” lengkap dengan latihan-latihan singkat seperti sebelumnya. Baiklah, akan kujalani! Sisa ini saja kok, aku pasti bisa, batinku percaya diri.
Data Cleansing berarti proses mengidentifikasi bagian data yang salah, tidak lengkap, tidak akurat, tidak relevan atau hilang dan kemudian memodifikasi, mengganti atau menghapusnya sesuai dengan kebutuhan. Data Cleansing dianggap sebagai elemen dasar dari Data Science
Pada bagian ini, akan membahas data cleansing dari treatment terhadap missing data, treatment outliers, sampai deduplikasi data.
Missing Data
Tugas Praktek
Outliers
Tugas Praktek
Setelah berhasil mengatasi missing value tadi, aku memutuskan untuk mencoba menemukan sejumlah outliers menggunakan IQR. Dengan begitu, aku bisa mengetahui berapa IQR dari variabel item_price.
Caranya dengan mengetikkan bagian yang kosong pada live code editor.
Deduplikasi Data
Tugas Praktek
Terakhir lagi menuju selesai! Aku tinggal membuang duplikasi data dari dataset retail_raw.
Aku akan melengkapi kode pada live code editor berikut.
https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced_data_quality.csv
Mini Project
Pendahuluan
“Revisianmu sudah saya pelajari kembali. Hasilnya cukup memuaskan. Kamu berhasil menganalisisnya dengan tepat dan mendalam. Saya jadi tertarik untuk memberikanmu sebuah proyek,” ujar Kroma setelah mengecek satu per satu hasil revisi pekerjaanku.
Aku tidak tahu harus senang atau gugup saat ini. Proyek yang dipercayakan langsung dari Kroma? Jujur saja, aku cukup gelisah. Beragam kemungkinan menggantung di dadaku, apakah aku mampu? Aku hanya anak baru yang selama ini banyak dibimbing Senja dan dibantu Andra.
Tanpa sadar aku terdiam lama. “Jangan khawatir. Saya yakin proyek ini sesuai dengan program belajarmu selama ini bersama Senja dan Andra. Jika ada penyesuaian dan pengembangan, hanya beberapa. Saya yakin kamu bisa melakukan improvisasi dengan baik,” lanjut Kroma.
Aku curiga atasanku ini memang bisa mendengar suara hati! Tapi mengetahui Kroma menaruh harapan dan kepercayaan padaku, aku seharusnya bangga. Dengan mengumpulkan kepercayaan diriku, aku mengiyakan proyek tersebut.
“Baik. Lima menit lagi saya akan mengirimkan data dari cabang kita di daerah G. Tolong bersihkan saja dulu datanya, detailnya yang harus kamu lakukan akan saya arahkan juga di email.” “Baik.” Aku pun keluar dari ruangan. Setelah mengatur napas sejenak, aku bergegas kembali ke meja. Apalagi setelah aku mendengar notifikasi email masuk di ponselku. Dan tahu kalau itu pasti dari Kroma
Case Studi: Data Profiling
Tolong proses dataset terlampir yang disimpan dalam bentuk csv bernama
'https://storage.googleapis.com/dqlab-dataset/uncleaned_raw.csv'.
Kamu bisa memprosesnya dengan cara berikut:
- Import dataset csv ke variable bernama uncleaned_raw
- Inspeksi dataframe uncleaned_raw
- Check kolom yang mengandung missing value. Jika ada, kolom apakah itu dan berapa persen missing value pada kolom tersebut? Mengisi missing value tersebut dengan mean dari kolom tersebut!
- Setelah membaca email tersebut, aku pun memulai kode programnya di code editor.
Case Studi: Data Cleansing - Part 1
Case Studi: Data Cleansing - Part 2
https://storage.googleapis.com/dqlab-dataset/uncleaned_raw.csv
Penutup/Kesimpulan
Congratulations! Aku telah menyelesaikan modul Data Quality with Python for Beginner. Berdasarkan materi-materi yang diberikan Kroma yang telah kupelajari dan praktekkan dalam modul ini, aku telah mendapatkan pengetahuan (knowledge) dan praktek (skill) yang diantaranya :
- Mampu melakukan profiling data baik untuk data angka maupun teks
- Mampu membuat rule untuk data cleansing (standarisasi data, value lookup, dan treatment duplikasi data)