Python Data Cleaning: Menghapus Kolom dan Baris di DataFrame

Sharing is caring!

Data cleaning atau data cleansing di dalam data mining adalah proses mendeteksi, mengkoreksi/memperbaiki, atau menghapus data yang rusak atau tidak sesuai format yang diinginkan dari sekumpulan data (dataset). Proses yang termasuk pre-processing data ini sangat penting dilakukan sebelum proses mining data. Jika data cleaning tidak dilakukan maka akan sangat mengganggu proses mining data itu sendiri. Bisa jadi hasil mining data menjadi tidak akurat atau error ketika melakukan mining akibat inkonsistensi data.

Secara umum, proses data cleaning meliputi: menghapus data yang tidak perlu, memperbaiki struktur data yang tidak sesuai, menghilangkan data outlier, dan menangani data yang hilang (missing data).

Pada artikel kali ini, saya akan membahas tentang teknik menghapus data yang tidak perlu dari serangkaian dataset menggunakan Python. Data yang akan dihapus dalam pembahasan kali ini terkait dengan penghapus kolom dataset yang tidak diperlukan, serta menghapus record data yang tidak valid (bernilai null atau NaN).

Untuk keperluan tersebut, akan digunakan file dataset ‘BL-Flickr-Images-Book.csv‘.

Langkah pertama, terlebih dahulu akan dilakukan import data dari file dataset tersebut menggunakan Pandas.

Untuk mengetahui nama kolom apa saja di dalam dataframe hasil import, digunakan perintah data.columns .

Dari hasil di atas, dapat diketahui nama-nama kolom dengan total 15 buah.

Adapun untuk mengetahui dimensi dari dataframe, digunakan perintah data.shape .

Berdasarkan hasil di atas, dapat diketahui ukuran dimensi dari dataframe adalah terdiri dari 8287 baris record dengan 15 kolom.

Langkah berikutnya, misalkan ingin diketahui kolom mana saja yang datanya tidak lengkap, bisa digunakan perintah data.count() . Perintah ini menghitung jumlah data pada setiap kolom yang tidak bernilai NaN, atau none. Kolom yang baik (datanya lengkap), haruslah berjumlah 8287 sesuai dengan jumlah record totalnya.

Berdasarkan hasil di atas, tampak bahwa paling tidak terdapat 7 kolom yang datanya tidak lengkap, yaitu ‘Edition Statement’, ‘Publisher’, ‘Author’, ‘Corporate Author’, ‘Corporate Contributors’, ‘Former owner’, dan ‘Engraver’.  Adapun kolom ‘Date of Publication’ tidak terlalu banyak data yang hilang, sehingga dibiarkan saja tidak perlu dihapus.

Misalkan kita ingin hapus kolom-kolom tersebut, digunakan perintah data.drop() .

Setelah kolom-kolom tersebut dihapus, bisa dicek kembali data.count()  nya.

dan… taraaaa….. kita dapatkan dataframe berisi kolom-kolom dengan data yang lengkap.

Baik… next.. pada kolom ‘Date of Publication’ hanya terdapat 8106 data yang bukan null, atau NaN dari total 8287 data. Oleh karena itu kita akan mencoba mereduksi jumlah data dari 8287 menjadi 8106 data saja. Dalam hal ini data yang akan dihapus adalah data pada index yang bersesuaian dengan data pada kolom ‘Date of Publication’ yang null atau NaN. Untuk melakukan hal ini, digunakan perintah data.dropna().

Sehingga didapatlah dataset dengan jumlah baris 8106 tanpa ada data yang null atau NaN.