Sebagai seorang Data Scientist, kita harus mengeksplorasi data untuk pekerjaan sehari-hari. Bagi pengguna Python, menggunakan modul Pandas adalah suatu keharusan. Meskipun ampuh, terkadang report yang dihasilkan terlalu standar. Mari kita lihat contohnya di bawah ini.
import pandas as pd
import seaborn as sns
#Loading dataset
mpg = sns.load_dataset('mpg')
mpg.describe()
Kita bisa menggunakan atribut .describe() untuk menghasilkan fundamental statistik, tetapi selain basic report seperti contoh di atas, kita bisa membuat report menjadi lebih menarik seperti di bawah ini.
Lihat saja perbedaan report tersebut. Ini membuat eksplorasi harian kita jauh lebih mudah. Selain itu, Anda bisa menyimpan report tersebut ke dalam format HTML dan membagikannya dengan siapa saja yang Anda inginkan. Mari kita mulai.
Pandas Profiling
Kita bisa membuat fantastic report seperti di atas dengan bantuan Pandas Profiling module. Modul ini paling baik digunakan dalam lingkungan Jupyter, jadi artikel ini akan membahas laporan yang dihasilkan di Jupyter Notebook. Untuk menggunakan modul ini, kita perlu menginstalnya terlebih dahulu.
pip install -U ydata-profiling
jupyter nbextension enable --py widgetsnbextension
Dengan begitu, kita siap untuk membuat report. Kita akan menggunakan fungsi Pandas Profiling, seperti kode di bawah ini.
from ydata_profiling import ProfileReport
profile = ProfileReport(mpg, title='MPG Pandas Profiling Report', explorative = True)
profile
Setelah menunggu sebentar, kita akan mendapatkan HTML report seperti di bawah ini.
Pada bagian pertama, kita akan mendapatkan informasi gambaran umum dari Data Frame kita. Ini mirip jika kita menggunakan atribut .info() dari objek Pandas Data Frame, tetapi Pandas Profiling menawarkan lebih banyak informasi. Misalnya, bagian Warnings.
Yang menarik dari bagian Warnings adalah informasi yang diberikan tidak hanya informasi dasar seperti missing data, tetapi juga yang lebih kompleks seperti high correlation, high cardinality, dan lain sebagainya. Kita bisa mengatur seberapa tinggi untuk dianggap sebagai ‘High Cardinal’ atau ‘High Correlation’, tetapi saya tidak akan membahasnya dalam artikel ini.
Jika kita scroll ke bawah, kita akan melihat bagian Variabel, yang menunjukkan semua kolom Numerik dan Kategorikal dengan lebih detail. Di bawah ini adalah contoh variabel numerik.
Kita bisa melihat bahwa setiap variabel disajikan dengan informasi statistik yang lengkap. Selain itu, ada bagian di mana kita bisa mendapatkan informasi untuk nilai yang paling umum dan nilai ekstrem.
Bagaimana dengan variabel kategorikal? Saya akan tunjukkan pada gambar di bawah ini.
Seperti variabel numerik, kita mendapatkan informasi lengkap tentang variabel tersebut. Scroll lebih jauh ke bawah, kita akan sampai di bagian Interactions. Ini adalah bagian di mana kita bisa mendapatkan Scatter Plot antara dua variabel numerik.
Dan tepat di bawahnya adalah bagian Correlations.
Bagian ini menunjukkan nilai korelasi antara variabel numerik dalam bentuk heatmap. Hanya ada empat perhitungan korelasi yang tersedia di sini dan jika Anda membutuhkan deskripsi korelasi, Anda bisa mengklik tombol “Toggle correlation descriptions”.
Ada juga bagian yang didedikasikan untuk missing values, seperti contoh di bawah ini.
Dan bagian terakhir hanya akan menampilkan contoh data — tidak ada yang menarik di sana.
Jika Anda butuh cara yang lebih sederhana untuk menampilkan report, kita bisa
menggunakan kode berikut untuk mengubah repot tersebut.
profile.to_widgets()
Dengan satu baris kode, kita mendapatkan informasi yang sama seperti yang saya tunjukkan di atas. Satu-satunya perbedaan adalah tampilan antarmuka (UI) menjadi lebih sederhana. Informasinya tetap sama.
Terakhir, jika Anda ingin mengekspor laporan ke file eksternal HTML, kita bisa menggunakan kode berikut.
profile.to_file('your_report_name.html')
Anda bisa menemukan file HTML di folder yang sama dengan Jupyter Notebook Anda. Jika Anda membuka file tersebut, itu akan otomatis terbuka di default browser Anda dengan antarmuka yang indah seperti yang ada di Jupyter Notebook.
Kesimpulan
Saya telah menunjukkan cara mengubah basic report di Pandas Data Frame menjadi bentuk yang lebih interaktif dengan menggunakan modul Pandas Profiling.
Semoga ini bermanfaat.
コメント