Exploratory Data Analysis with Python for Beginner

📝

Desyka Notes
5 min readSep 11, 2021
Image taken by Author

Pengenalan Library dalam Python

Library pada Python merupakan kumpulan code yang bersifat open-source yang dapat dipanggil ke dalam Python dan digunakan untuk membantu komputasi. Library dasar pada Python yang digunakan untuk analisis data diantaranya NumPy, SciPy, Pandas, dan Matplotlib dengan fungsional yang berbeda-beda. Command untuk memanggil library di Python menggunakan syntax (menggunakan huruf kecil): import library_name as alias. Alias berfungsi sebagai pengganti nama library, sehingga menghemat komputasi saat function dari library tersebut dipanggil.

Membaca File dari Excel atau CSV sebagai Data Frame

Salah satu fungsi Pandas yaitu melakukan load data dari CSV atau Excel file. Syntax yang digunakan untuk melakukan operasi tersebut, yaitu:

# Membaca file CSV
[nama_variabel] = pd.read_csv("nama_file.csv")
# Membaca file Excel
[nama_variabel] = pd.read_excel("nama_file.xlsx")

Melihat Struktur Kolom dan Baris dari Data Frame

Hal pertama dalam mengerti struktur dari dataframe adalah informasi mengenai berapa size dari dataframe yang akan digunakan termasuk berapa jumlah kolom dan jumlah baris data frame tersebut. Dalam kasus ini, dapat menggunakan fungsi .shape pada suatu dataframe. Syntaxnya dinyatakan dengan print([nama_dataframe].shape).

Melihat Preview Data dari Data Frame

Selanjutnya, untuk mendapatkan gambaran dari konten dataframe dapat menggunakan function head dan tail, dengan syntax:

# Menampilkan konten teratas dari [nama_dataframe]
# untuk sejumlah bilangan bulat [jumlah_data]
print([nama_dataframe].head([jumlah_data]))
# Menampilkan konten terbawah dari [nama_dataframe]
# untuk sejumlah bilangan bulat [jumlah_data]
print([nama_dataframe].tail([jumlah_data]))

Statistik Deskriptif dari Data Frame

Statistik deskriptif atau summary dalam Python-Pandas, dapat diperoleh dengan menggunakan fungsi describe(), yaitu print([nama_dataframe].describe()). Function describe dapat memberikan informasi mengenai nilai rataan, standar deviasi dan IQR (interquartile range). Ketentuan umum:

  • Secara umum function describe() akan secara otomatis mengabaikan kolom category dan hanya memberikan summary statistik untuk kolom berjenis numerik.
  • Menambahkan argument bernama include=”all” untuk mendapatkan summary statistik atau statistik deskriptif dari kolom numerik dan karakter.

Jika ingin mendapatkan summary statistik dari kolom yang tidak bernilai angka, maka dapat menambahkan command include=[“object”] pada syntax describe().

print(nama_dataframe.describe(include=["object"]))

Selanjutnya, untuk mencari rataan dari suatu data dari dataframe. Dapat menggunakan syntax mean, median, dan mode dari Pandas.

print([nama_dataframe].loc[:, "nama_kolom"].mean())
print([nama_dataframe].loc[:, "nama_kolom"].median())
print([nama_dataframe].loc[:, "nama_kolom"].mode())

Mengenal dan Membuat Distribusi Data dengan Histogram

Histogram merupakan salah satu cara untuk mengidentifikasi sebaran distribusi dari data. Histogram adalah grafik yang berisi ringkasan dari sebaran (dispersi atau variasi) suatu data. Pada histogram, tidak ada jarak antar batang/bar dari grafik. Hal ini dikarenakan bahwa titik data kelas bisa muncul dimana saja di daerah cakupan grafik. Sedangkan ketinggian bar sesuai dengan frekuensi atau frekuensi relatif jumlah data di kelas. Semakin tinggi bar, semakin tinggi frekuensi data. Semakin rendah bar, semakin rendah frekuensi data. Syntax umum:

nama_dataframe[["nama_kolom"]].hist(bins = jumlah_bin, by = nama_kolom, alpha = nilai_alpha, figsize = tuple_ukuran_gambar)

Beberapa atribut penting dalam histogram pandas:

  • bins = jumlah bins dalam histogram yang akan digunakan. Jika tidak didefinisikan jumlah bins, maka function akan secara default menentukan jumlah bins sebanyak 10.
  • by = nama kolom di DataFrame untuk di group by. (valuenya berupa nama column di dataframe tersebut)
  • alpha = nilai alpha untuk menentukan opacity dari plot di histogram. (value berupa range 0.0–1.0, dimana semakin kecil akan semakin kecil opacitynya)
  • figsize = tuple ukuran gambar yang digunakan untuk menentukan ukuran dari plot histogram. Contoh: figsize=(10,12)

Standar Deviasi dan Varians pada Pandas

Varians dan standar deviasi juga merupakan suatu ukuran dispersi atau variasi. Standar deviasi merupakan ukuran dispersi yang paling banyak dipakai. Hal ini mungkin karena standar deviasi mempunyai satuan ukuran yang sama dengan ukuran data asalnya. Sedangkan varians memiliki satuan kuadrat dari data asalnya (misalnya cm²). Syntax dari standar deviasi dan varians pada Pandas:

print([nama_dataframe].loc[:, "nama_kolom"].std())
print([nama_dataframe].loc[:, "nama_kolom"].var())

Menemukan Outliers Menggunakan Pandas

Outliers merupakan data observasi yang muncul dengan nilai-nilai ekstrim. Yang dimaksud dengan nilai-nilai ekstrim dalam observasi adalah nilai yang jauh atau beda sama sekali dengan sebagaian besar nilai lain dalam kelompoknya. Pada umumnya, outliers dapat ditentukan dengan metric IQR (interquartile range). Rumus dasar dari IQR: Q3-Q1. Dan data suatu observasi dapat dikatakan outliers jika memenuhi kedua syarat dibawah ini:

  • data < Q1–1.5*IQR
  • data > Q3+1.5*IQR

Syntax di Python:

Q1 = nama_dataframe.quantile(0.25)
Q3 = nama_dataframe.quantile(0.75)
IQR = Q3 - Q1
print(IQR)

Setelah memiliki skor IQR, saatnya untuk menentukan Outliers. Kode di bawah ini akan memberikan output dengan beberapa nilai True atau False. Titik data di mana terdapat False yang berarti nilai-nilai ini valid sedangkan True menunjukkan adanya Outliers.

print((nama_dataframe < (Q1-1.5*IQR)) | (nama_dataframe > (Q3+1.5*IQR)))

Rename Kolom Data Frame

Pada bagian ini, mempelajari bagaimana cara mengganti nama kolom dataframe menggunakan Pandas. Mengganti nama kolom pada Pandas dapat dilakukan dengan 2 cara:

  • Rename menggunakan nama kolom
nama_dataframe.rename(columns = {"column_name_before": "column_name_after"}, inplace = True)
  • Rename menggunakan indeks kolom
nama_dataframe_columns.values[no_of_column] = "column_name_after"

.groupby Menggunakan Pandas

Kegunaan .groupby adalah mencari summary dari data frame dengan menggunakan aggregate dari kolom tertentu.

nama_dataframe["kolom_yang_dihitung"].groupby([nama_dataframe["kolom_yang_dijadikan_perbandingan"]]).mean()

Contoh penggunaan:

Diberikan dataset bernama df seperti dibawah ini:

df["Score"].groupby([df["Name"], df["Exam"]]).sum()

Hasil:

Image taken from academy.dqlab.id

Penjelasan: komputasi diatas menggunakan kolom ‘Name’ dan ‘Exam’ sebagai aggregate dan kemudian menggunakan perhitungan sum dari kolom ‘Score’ pada tiap-tiap aggregate tersebut.

Sorting Menggunakan Pandas

Sorting adalah sebuah metode mengurutkan data berdasarkan syarat kolom tertentu dan biasanya digunakan untuk melihat nilai maksimum dan minimum dari dataset. Library Pandas sendiri menyediakan fungsi sorting sebagai fundamental dari exploratory data analysis. Syntax untuk operasi sorting pada Pandas:

nama_dataframe.sort_values(by = "nama_kolom")

Function tersebut akan secara default mengurutkan secara ascending (dimulai dari nilai terkecil), untuk dapat mengurutkan secara descending (nilai terbesar lebih dahulu) dapat menggunakan properti tambahan:

nama_dataframe.sort_values(by = "nama_kolom", ascending = False)

Fungsi sorting di Pandas juga dapat dilakukan menggunakan lebih dari satu kolom sebagai syarat. Contohnya pada skenario dibawah, akan mencoba mengaplikasikan fungsi sorting menggunakan Age dan Score sekaligus:

# Syntax
nama_dataframe.sort_values(by = ["nama_kolom_1", "nama_kolom_2"], ascending = [False, True])

Tugas (cabang supermarket)

  1. Median price yang dibayar customer dari masing-masing metode pembayaran.
  2. Tentukan metode pembayaran yang memiliki basket size (rataan median prize) terbesar.
  3. Ubah freight value menjadi shipping cost dan cari shipping cost termahal dari data penjualan tersebut menggunakan sort.
  4. Untuk setiap product category name, berapa rata-rata weight produk tersebut dan standar deviasi mana yang terkecil dari weight tersebut.
  5. Buat histogram quantity penjualan dari dataset tersebut untuk melihat persebaran quantity penjualan tersebut dengan bins = 5 dan figsize = (4, 5).

Khusus poin 4, perlu lebih diperhatikan karena hasil analisisnya akan digunakan kepala cabang dalam menyusun strategi free ongkir.

Image taken by Author

--

--