Langsung ke konten utama

Pre-Processing, Membersihkan Dataframe pada Python

Sebagian kita mungkin mengenal python sebagai salah satu bahasa pemrograman yang dapat digunakan untuk mengolah data. Salah satu module yang cukup umum ialah Pandas. Namun, sedikit dari kita menyadari pentingnya membersihkan data sebelum digunakan. 

Sebelum masuk ke Pemrosesan mari kita nikmati sebuah meme dari reddit:

gambar 1.0

Data yang diolah tidak selalu bersih. Pada beberapa kasus terdapat data unknown atau data yang keluar dari batas wajar dan tidak sesuai mengikuti aturan di dunia nyata. Misal juamlah kuantitas belanja yang mencapai puluhan ribu pada sekali check out atau kuantitas yang nilainya lebih kecil dari satu. Oleh karena itu, diperlukan pembersihan dataset dari data yang rusak atau kotor.

Banyak metode yang dapat dilakukan untuk menormalisasi data, di antaranya mengantinya dengan modus, rata-rata, median, atau menghapusnya. Pada kasus ini, penulis menggunakan teknik dropping atau menghapus data yang rusak atau tak sesuai denagn method .drop().

Sebelum membersihkan dataset. Data perlu diverifikasi atau dicek terlebih dahulu bagaimana kondisinya, apakah terdapat data yang unknown atau tidak normal. Verifikasi data dapat dilakukan dengan method .info() dan .describe() pada data.

Method .info() digunakan untuk mendapatkan informasi dari tiap kolom, seperti banyak data yang terdeteksi dan bentuknya. Dengan begitu kita dapat mengetahui ada berapa baris yang mungkin rusak dan kerusakan ada pada kolom mana saja.

Method .describe() digunakan untuk mendapatkan data statistik dasar dari dataset atau dataframe. Dengan metode tersebut bisa didapatkan, simpangan baku, niulai minimal, maksimal, dan persentil. Berdasar hal tersebut kita dapat menyimpulkan kolom mana saja yang perlu dinormalisasi sehingga tidak ada data yang tidak wajar.

Method  .drop() digunakan untuk menghapus data yang dipilih. Dengan begitu data yang rusak tidak perlu lagi diperhitungkan. Sehingga data yang diperoleh kemudian lebih wajar dan lebih mengambarkan kenyataan.

Untuk memulai pembersihan data, hal pertama yang harus dilakukan adalah mengecek kondisi dataframe dengan metode .info() dan describe(). Pada dataset ini, berikut tampilan setelah perintah DataFrame.info() dijalankan



Gambar 1.1

Terlihat pada dataframe terdapat tujuh kolom dengan empat koilom numerik dan tiga kolom kategorik, dengan data waktu pada salah satunya. Pada kolom non-null count  terdapat sedikit keganjalan dengan jumlah null yang berbeda pada kolom ‘Quantity’. Maka dapat disimpulkan bahwa pada kolom ‘Quantity’terdapat lima belas baris yang berisi data  null.

Selain menggunakan metode .info() untuk memastikan keberadaan data null, dapat juga dilakukan perintah .isnull().any(). Dengan metode tersebut python akan menampilkan apakah pada suatu kolom terdapat data null. Jika terdapat null, akan dikeluarkan True. Sebaliknya jika tidak terdapat null, akan dikeluarkan False.


Gambar 1.2

Untuk mengatasi data yanbg tidak diketahui salah satu caranya ialah dengan menghapus data tersebut. Metode yang digunakan ialah metode drop dengan perintah

dataframe.dropna()


Gambar 1.3

Setela mengecek data dengan metode info, data juga perlu dicek degan metode describe(). Dengan begitu dapat ditentukan seberapa jauh persebara dan simpangan data. Dari sana juga dapat ditemukan apakah terdapat dari dataframe terdapat data yang melenceng secara tidak wajar atau tidak. Pada perintah sebelumnya, penulis memberi tambahan kolom ‘total’ sebagai total harga yang dibayarkan, kuantitas dikali harga satuan.


Gambar 1.4

Pada tampilan terlihat terdapat data kuantitas yang tidak wajar yakni nilai negatif , dan pembelian sebesar 62.000. Untuk membersihkan data yang melenceng dan tak normal dapat dilakukan teknik pembersihan data dengan metode outline dan pengecekan manual. Pengecekan manual digunakan untuk nilai disekitar nilai wajar, tetapi tidak masuk akal seperti kuantitas negatif. Sedangkan teknik outlier digunakan untuk membersihkan data tidak wajar berupa simpangan jauh. Seperti pembelian sebanyak 62.000 satuan.


Gambar 1.5

Teknik outlier adalah teknik membuang data yang lebih kecil dari Q1-dH dengan H merupakan nilai Q3-Q1, atau data yang lebih besar dari Q3+dH.


Gambar 1.6

Dua teknik di atas menggunakan command drop() atau penghapusan data untuk membersihkan data sehingga pada dataframe tak terdapat lagi data yang tidak normal. Setelah dilakukan dua metode di atas, didapatkan dataframe yang bersih dan wajar.

Sekian dari saya. Saya menyadari konten yang saya berikan jauh dari kata sempurna. Oleh karena itu, saya sangat mengapresiasi segala masukan, baik kritik, maupun saran yang diberikan teman-teman, Anda bisa kontak saya melalui email. 

Terima kasih sudah membaca.

Komentar

Postingan populer dari blog ini

LeetCode (70): Permasalahan Menaiki Tangga

image source: liputan6 Seperti biasa, setiap pagi, aku mencoba untuk mengerjakan persoalan atau problem yang disediakan oleh Leetcode, sebuah website kumpulan persoalan yang biasanya diujikan pada technical test  ketika ingin melamar pekerjaan atau magang. Namun, kemarin, aku menemukan sebuah persoalan unik yang berjudul Climbing Stairs. Yang membuat persoalan ini unik bukan tingkat kesulitannya, melain sebagaimana tricky penyelesaiannya. Berikut persoalan Climbing Stairs dari LeetCode.  Seseorang bisa menaiki tangga dengan naik satu anak tangga atau langsung menaiki dua anak tangga sekaligus. dalam menaiki tangga, bisa saja dapat banyak kombinasi cara menaiki tangga. Jika terdapat tangga setinggi n anak tangga. Tentukan banyak cara menaiki anak tangga.     Bila Anda diminta untuk menyelesaikan ini, bagaimana kah cara Anda menghitungnya? Sejatinya, ada banyak cara menyelesaikan permasalahan ini. Namun, dalam komputasi, jawaban terbaik disajikan dalam cara termalas atau nilai kompleksit

Sebuah Catatan Semester III dan 2021

Grafik pengunjung blog [Mungkin mengandung kata kasar, dan menganggu]  Katanya " Orang yang beruntung adalah yang hari ini lebih baik dari kemarin, orang merugi adalah yang hari ini tak lebih baik dari hari kemarin, sedangkan orang celaka adalah yang hari ini lebih buruk dari hari kemarin". Begitulah gambaran awalnya, mungkin kalo dievaluasi. Muncul pertanyaan besar, kiranya di manakah posisi Risqi sekarang? Jika boleh jujur, menurut penulis, Risqi sekarang ada di titik celaka. Ya, yang hari kemarinnya masih lebih baik dari hari ini. Baik dari spiritual, moral hingga akademik. Sudah banyak teman ia minta saran, tapi rasanya sama saja. Sepertinya beda saja, dulu dua amat rajin membuat artikel machine learning di blog, mencoba hal atau teknologi baru, ikut hackathon dan lomba, tapi sekarang progressnya macet, liburan diisi dengan hal tak bermanfaat. Bukannya tak bersyukur, memang kadang dalam mengevaluasi diri perlu disadari dan diakui bahwa DIRIMU S*MPAH. Orang berkata, banya

30 Jam 3 Orang 1 Produk

 Mungkin, artikel ini berjudul 30 jam, tapi cerita yang kubawakan mungkin akan lebih panjang. Cerita tentang perjalan membuat Workoutin (ini link copyannya). Walau masi jauh dari sempurna. Namun, perjalanan ini cukup menarik buat aku critain. Ini merupak first time masuk final lomba nasional, ya meskipun belum juara 1 :"), but hamdallah. Berawal dari sebuah informasi lomba di notion. Ya, awalnya aku kurang berminat, karena takut, dan banyak hal lain. Namun, aku sadar, kalo aku tetep di state ini, ga mau bergerak, mana mungkin berubah? Cerita pun berawal dari pencarian tim. Aku tidak begitu saja mendapat tim. Beberapa kali mendapat penolakan. Hingga akhirnya terbentuklah, Risqi, Yandy, Helmi, alias Gak Ada Ide. Aneh memang, berawal dari kebingungan memberi nama, kami pun akhirnya memberi nama "Gak Ada Ide" karena memang ga ada ide untuk nama tim. Setelah mendaftar, bisa dibilang, kami cukup santai dengan lomba ini. Kami tidak menarget sedikitpun.  Saking santainya, mungki