DQLab Career Track Module
Hallo semuanya, apa kabar? Setelah menjadi pawang SQL selama 3 session berturut-turut, kali ini kita akan kembali lagi menjadi pawang ular dalam module Exploratory Data Analysis with Python for Beginner. Berbeda dalam session-session sebelumnya, kali ini kita akan menjadi pawang ular dengan hari-hari penuh kejutan bareng Andra. Hmmm… Apa saja sih, kejutannya??
Nah, dalam session bersama Andra kali ini, kita akan diperhadapkan dengan banyak tugas praktek yang datang silih berganti. Eeiittss, tapi tenang dulu! Meskipun di session ini lebih banyak prakteknya, tapi kalian masih ngga sendiri kok, karena kalian juga masih diberi materi sebelum menyelesaikan tugas-tugas tersebut, sehingga kalian bisa lebih paham penggunaan fungsi-fungsinya dalam library Python ini. Nah, kamu penasaran kan, gimana seru dan tegangnya session bersama Andra kali ini?? Supaya kalian ngga terus-terusan penasaran, yuk langsung mencoba module ini di DQLab Paltform. Seperti biasa, sebelum praktek, kalian akan disajikan materi-materi dengan penyajian yang sederhana dan mudah dipahami. Jadi, bagi kalian yang masih awam di bidang data, kalian ngga perlu takut lagi, karena DQLab Platform ini ramah buat kalian yang masih awam di bidang tersebut.
Kembali pada pembahasan tadi, sebelum mengenal fungsi-fungsi dalam library Python, kita akan berkenalan dulu dengan library Python. Btw, apa sih, library itu? Library dalam Python merupakan kumpulan code yang bersifat open-source yang dapat dipanggil ke dalam Python dan digunakan untuk membantu komputasi. Library dasar pada Python yang biasa digunakan dalam analisis data antara lain NumPy, SciPy, Pandas, dan Matplotlib, masing-masing denganfungsi yang berbeda — beda. Nah, dalam pembahasan ini, kita akan mencoba memahami kegunaan dari masing — masing library beserta contoh kasus penggunaan library tersebut dalam menyelesaikan real — case di dunia kerja.
1] Library NumPy
Numpy berasal dari kata ‘Numerical Python’. Sesuai dengan namanya, NumPy berfungsi sebagai library yang digunakan untuk melakukan proses komputasi numerik terutama dalam bentuk array multidimensional, baik itu berbentuk 1-Dimensi ataupun 2-Dimensi. Array merupakan kumpulan dari variabel yang memiliki tipe data yang sama. Adapun library NumPy menyimpan data dalam bentuk arrays ini. Ilustrasi bentuk 1D dan 2D NumPy array dapat kalian lihat pada gambar berikut.
Bentuk 1D Numpy array:
Bentuk 2D NumPy array:
2] Library SciPy
Scipy dirancang dengan tujuan agar bisa bekerjasama dengan array NumPy untuk menyediakan banyak komputasi numerik yang ramah pengguna dan efisien, seperti rutinitas untuk integrasi, diferensiasi, serta optimasi numerik.
Baik NumPy maupun SciPy memiliki kelebihan yang sama, yaitu dapat berjalan pada semua operating system, cepat untuk diinstall dan juga gratis. Tidak hanya mudah digunakan, kedua library ini cukup kuat untuk diandalkan oleh beberapa data scientist dan researcher terkemuka di dunia.
3] Library Matplotlib
Matplotlib merupakan library dari Python yang umum digunakan untuk visualisasi data. Matplotlib memiliki kapabilitas untuk membuat visualisasi data secara 2-dimensional. Contoh bentuk visualisasi yang dapat dibuat dengan menggunakan library ini antara lain:
1. Line chart
2. Bar chart
3. Pie chart
4. Box plot chart
5. Violin chart
6. Errorbar chart
7. Scatter chart
Selain bentuk-bentuk visualisasi yang telah disebutkan tadi, masih banyak jenis chart lainnya yang juga dapat dibuat melalui library ini.
Memanggil library di Python
Nah, sebelum dapat digunakan, library-library tersebut harus dipanggil ke dalam lingkungan Python terlebih dahulu. Adapun command yang digunakan untuk memanggil library tersebut menggunakan huruf kecil dengan syntax seperti pada gambar berikut.
Alias berfungsi sebagai pengganti nama library. Umumnya, nama alias ini dipersingkat sehingga menghemat komputasi saat function dari library tersebut dipanggil.
Sebagai contoh, kita akan mencoba mengimport library numpy dan pandas menggunakan alias np dan pd masing-masing library tersebut.
Jika perintah tersebut dijalankan, maka tidak akan tampak output apapun dari perintah tersebut karena di sini kita hanya mengimport library, bukan menampilkan output.
Membaca file dari Excel atau CSV sebagai data frame
Selain dapat mengimport library dari Pandas, kita juga dapat melakukan load data yang berbentuk CSV atau Excel file. Syntax yang digunakan untuk melakukan kedua operasi tersebut dapat kalian lihat pada gambar berikut.
Dari syntax tersebut, [nama_variabel] mewakili nama variabel dari dataframe yang berguna untuk menampung data dari dataset tersebut.
Praktek
Pada praktek ini, kita akan mencoba mengimport dataset marketplace ABC dari order.csv, lalu menyimpannya dalam bentuk dataframe yang bernama order_df.
import pandas as pdorder_df = pd.read_csv["order.csv"]
Sama seperti halnya saat memanggil library Python, pada proses loading data ini tidak ada satupun output yang ditampilkan, kecuali jika kita ingin mencetak hasil loading data tersebut dengan fungsi print[].
Bagaimana dengan struktur data frame?
Setelah melakukan proses loading dataframe ke dalam Python, kita perlu mengerti struktur datasetnya terlebih dahulu sebelum masuk ke tahap analisis data. Adapun langkah selanjutnya yang bisa kalian lakukan selama melakukan proses pre — analisis antara lain:
1. melihat struktur data frame,
2. melihat preview data dari dataframe tersebut, dan
3. membuat summary data sederhana dari dataset.
Melihat struktur kolom dan baris dari data frame
Langkah pertama yang dapat kita lakukan adalah mengetahui informasi mengenai size dari dataframe yang akan digunakan, yaitu jumlah kolom serta jumlah baris data frame tersebut.
Dalam case ini, kita dapat menggunakan fungsi .shape pada dataframe tersebut. Syntaxnya bisa kalian lihat pada gambar di bawah ini.
Praktek
Pada praktek kali ini, kita akan mencoba untuk melihat struktur dari order_df dengan menggunakan fungsi .shape.
import pandas as pdorder_df = pd.read_csv["order.csv"]print[order_df.shape]
Di sini, terlihat bahwa dataframe order_df memiliki 49999 serta 12 kolom.
Melihat preview data dari data frame
Selanjutnya, untuk mendapatkan gambaran dari konten sebuah dataframe, kita dapat menggunakan function .head[] dan .tail, dengan syntax:
Dari syntax di atas, kita dapat melihat bahwa fungsi .head[] dan .tail[] berturut-turut berperan menampilkan data teratas serta terbawah dari sebuah dataframe. Jika parameter [jumlah_data] pada function head dan tail dikosongkan, kedua fungsi tersebut akan menampilkan 5 [lima] baris saja secara default, sehingga syntax yang dapat kita gunakan adalah sebagai berikut.
Praktek
Sekarang, kita akan mencoba untuk mengecek dataframe order_df menggunakan fungsi head dengan limit 10 baris.
import pandas as pdorder_df = pd.read_csv["order.csv"]print[order_df.head[10]]
Output yang dihasilkan berupa isi dari dataframe order_df dengan tampilan 10 baris pertamanya saja. Karena dataframe ini memiliki banyak kolom, yaitu 12 kolom, maka yang ditampilkan hanyalah sebagian kolomnya saja, yaitu order_id dan product_weight_gram.
Statistik Deskriptif dari Data Frame
Statistik deskriptif, atau yang dikenal sebagai summary dalam library Pandas dapat diperoleh dengan fungsi .describe[]. Function ini dapat memberikan informasi mengenai nilai rataan, standar deviasi, serta IQR [interquartile range] dari suatu data.
Secara default, function .describe[] secara otomatis akan mengabaikan kolom category dan hanya memberikan summary statistik untuk kolom berjenis numerik.
Supaya kita bisa mendapatkan summary statistik atau statistik deskriptif dari kolom numerik dan karakter, kita perlu menambahkan argumen yaitu include = “all” seperti yang ditunjukkan pada syntax berikut.
Misalnya, dalam sebuah case kita menjumpai sebuah dataframe Pandas dengan nama nilai_skor_df yang berisi informasi seperti gambar dibawah ini.
Kemudian, kita menerapkan fungsi .describe[] pada nilai_skor_df seperti pada syntax berikut.
Maka, output yang dihasilkan adalah statistik deskriptif dari kolom-kolom bertipe numerik saja, yaitu kolom Age dan Score.
Jika kita ingin mendapatkan summary statistik dari kolom yang tidak numerik saja dari dataframe tersebut, kita dapat menambahkan argumen include=[“object”] pada syntax .describe[].
Dari output yang diperoleh, terlihat bahwa kolom Name adalah satu-satunya kolom yang tidak bertipe numerik. Berbeda dengan statistika deskriptif sebelumnya, pada statistika deskriptif untukkolom ini yang ditampilkan adalah jumlah kolom [count], jumlah unik data [unique], nilai data teratas [top], serta frekuensi unik dari nama tersebut [freq].
Function .describe[] dengan include=”all” akan memberikan summary statistic dari semua kolom nilai_skor_df seperti pada syntax berikut ini.
Output yang dihasilkan adalah tampilan kolom Age, Name, dan Score. Perhatikan baik-baik, untuk kolom Age dan Score, terdapat nilai NaN pada baris Unique, Top, dan Freq. Mengapa? Karena kolom-kolom ini bertipe numerik, nilai Unique, Top, serta Freq tidak terbaca seperti pada kolom bertipe non-numerik, sehingga bernilai NaN pada kolom-kolom tersebut ketika ditampilkan nilai deskriptifnya.
Selain menggunakan fungsi .describe[], kita dapat melihat statistika deskriptif dari sebuah data dengan fitur .mean[], .median[], dan .mode[] yang masing-masing berperan dalam mencari nilai rataan, nilai tengah, serta nilai yang paling sering muncul di dataframe. Syntax dari masing-masing fitur tersebut bisa kalian lihat seperti pada gambar berikut.
Sebagai contoh, kita akan menggunakan fungsi .mean[] dan .median[] untuk mencari nilai rataan kolom Age serta nilai tengah kolom Score dari dataframe nilai_skor_df.
Dari output yang dihasilkan, terlihat bahwa nilai rataan dan nilai median dari dataframe tersebut masing-masing adalah 21.4 dan 78.
21.4 # Mean78 # Median
Praktek
Pada tugas praktek yang diberikan Andra kali ini, kita akan mengevaluasi performa cabang A dengan tambahan quick summary dari segi kuantitas , harga , freight value , dan weight yang dibeli konsumen. Ada juga median dari total pembelian konsumen per transaksi yang harus kita sertakan di dalamnya untuk bisa dianalisis juga.
Untuk bisa memperoleh data quick summary tersebut, kita akan menggunakan fungsi .describe[] terhadap order_df untuk melihat statistik deskriptif dari kolom quantity, price, freight_value, dan product_weight_gram yang masing-masing mewakili kuantitas, harga, freight value, serta weight dari produk yang dibeli konsumen. Kemudian, kita akan melihat nilai median dari kolom price dengan menggunakan fungsi .median[]. Dataframe yang akan kita gunakan dalam praktek ini adalah order_df.
import pandas as pdorder_df = pd.read_csv["order.csv"]# Menghitung quick summary dari segi kuantitas, harga, freight value, dan weightprint[order_df.describe[]]# Menghitung median dari total pembelian konsumen per transaksi kolom priceprint[order_df.loc[:, "price"].median[]]
Hanya dengan menggunakan fungsi .describe[] tanpa parameter apapun, kita sudah langsung mendapatkan summary dari kolom data yang kita inginkan. Mengapa? Karena kolom-kolom tersebut bertipe numerik sehingga kita hanya perlu menampilkannya dengan .describe[] secara default saja. Untuk nilai median dari total pembelian konsumen per transaksi pada kolom price, kita mendapati nilai tersebut sebesar 2610000.
Mengenal dan Membuat Distribusi Data dengan Histogram
Histogram adalah salah satu jenis grafik yang digunakan untuk mengidentifikasi sebaran distribusi dari sebuah data. Histogram ini umumnya berisi ringkasan dari sebaran [dispersi atau variasi] suatu data. Pada histogram, tidak ada jarak antar batang/bar dari grafik, karena titik data kelas bisa muncul dimana saja di daerah cakupan grafik. Berbeda dengan sumbu x grafik, ketinggian suatu bar ditentukan oleh frekuensi atau frekuensi relatif jumlah data di kelas. Semakin tinggi suatu bar, semakin tinggi frekuensi data. Begitu juga sebaliknya.
Umumnya, kita menggunakan library matplotlib untuk membuat histogram . Secara umum, syntax yang digunakan adalah sebagai berikut.
Beberapa atribut penting dalam histogram pandas yang perlu kamu ketahui adalah sebagai berikut.
1. bins= jumlah bins dalam sebuah histogram yang akan digunakan. Jika tidak didefinisikan jumlah binsnya , maka function akan secara default menampilkan jumlah bins sebanyak 10.
2. by= kolom pada dataframe yang akan di-group by. Valuenya bisa berupa nama column dari dataframe tersebut.
3. alpha= untuk menentukan opacity pada plot di histogram. Valuenya terdiri dari bilangan dengan range 0.0–1.0, dimana semakin kecil range-nya maka akan semakin kecil opacity nya]
4. figsize = untuk menentukan ukuran dari plot histogram. Contoh: figsize=[10,12]
Praktek
Nah, pada praktek kali ini, kita akan membuat suatu distribusi harga dari pembelian produk di cabang A. Dataframe yang akan kita gunakan sama seperti data sebelumnya, yaitu order_df. Supaya lebih mudah dicerna, kita akan membuatnya dalam bentuk histogram price.
Pertama-tama, kita akan mengimport library yang kita butuhkan, yaitu pandas dan matplotlib. Selanjutnya, kita akan melakukan loading terhadap dataset order.csv kemudian membuat histogram dengan fungsi .hist[] untuk membuat distribusi dari kolom price. Supaya histogram ini dapat ditampilkan, jangan lupa untuk menambahkan perintah plt.show[], ya.
import pandas as pdimport matplotlib.pyplot as pltorder_df = pd.read_csv["order.csv"]# Membuat plot histogram menggunakan kolom priceorder_df[["price"]].hist[figsize=[4, 5], bins=10, xlabelsize=8, ylabelsize=8]plt.show[] # Untuk menampilkan histogram yang sudah dibuat
Dari output yang dihasilkan, terlihat bahwa banyaknya harga dari kolom price untuk tiap-tiap datanya adalah hampir sama.
Standar Deviasi dan Varians pada Pandas
Varians dan standar deviasi dapat disebut sebagai suatu ukuran dispersi atau variasi. Dari kedua nilai ini, standar deviasi adalah ukuran dispersi yang paling banyak dipakai. Hal ini dikarenakan nilai tersebut mempunyai satuan ukuran yang sama dengan satuan ukuran data asalnya. Berbeda dengan standar deviasi, varians memiliki satuan kuadrat dari data asalnya [misalnya cm²].
Syntax dari standar deviasi dan varians pada Pandas dapat kalian lihat seperti pada gambar berikut.
Sebagai contoh, kita akan menggunakan fungsi .std[] dan .var[] masing-masing untuk menghitung nilai standar deviasi dari kolom Age serta varians dari kolom Score dari dataframe nilai_skor_df.
Dari output yang dihasilkan, terlihat bahwa standar deviasi dari Age serta nilai varians dari Score masing-masing adalah 2.7 dan 152.8
Praktek
Selanjutnya, kita akan mencoba menampilkan data persebaran product_weight_gram pada data penjualan cabang A yang kita peroleh dari order.csv. Nilai yang akan kita tampilkan adalah standar deviasi dan varians dari kolom product_weight_gram untuk menganalisis lebar persebaran distribusi tersebut.
import pandas as pdorder_df = pd.read_csv["order.csv"]# Menghitung standar variasi kolom product_weight_gramorder_df.loc[:, "product_weight_gram"].std[]# Menghitung varians kolom product_weight_gramorder_df.loc[:, "product_weight_gram"].var[]
Dari output yang dihasilkan, terlihat bahwa nilai standar deviasi dan varians dari kolom tersebut adalah 3929.9 dan 15444089.5.
Menemukan Outliers Menggunakan Pandas
Sebelum melangkah lebih jauh menuju step by step untuk menemukan outliers, kita akan berkenalan dahulu dengan outliers.
Outliers merupakan data observasi yang muncul dengan nilai-nilai ekstrim. Nilai ekstrim di sini adalah nilai yang jaraknya jauh atau beda sama sekali dengan sebagian besar nilai lain dalam kelompoknya.
Umumnya, outliers dapat ditentukan dengan menggunakan metric IQR [interquartile range].
Rumus dasar dari IQR yaitu Q3 — Q1, dengan Q1 dan Q3 masing-masing adalah nilai kuartil pertama dan ketiga. Sebuah data dalam suatu observasi dapat dikatakan outliers jika memenuhi kedua syarat dibawah ini.
1. data < Q1–1.5 * IQR
2. data > Q3 + 1.5 * IQR
Syntax yang dapat kita gunakan untuk mencari nilai IQR tersebut adalah sebagai berikut.
Pada contoh case kali ini, kita akan mencoba mengidentifikasi nilai IQR dari kolom Score pada dataframe nilai_skor_df. Asumsikan kita akan menerapkannya juga pada kolom Age.
Dari output yang dihasilkan, terlihat bahwa nilai IQR dari kolom Age dan Score masing-masing adalah 3.0 dan 7.0.
Karena kita sudah mengetahui skor IQR dari data tersebut, saatnya kita akan menentukan nilai outliers-nya menggunakan kedua syarat yang sudah kita bahas tadi. Seperti pada potongan kode di bawah ini, kita akan menampilkan output berupa beberapa nilai True atau False yang tersebar pada variabel Age, Name, dan Score. Pada output yang dihasilkan, titik data di mana terdapat nilai False akan menunjukkan nilai-nilai data yang valid, sementara titik-titik True menunjukkan adanya outliers dari data tersebut.
Dari output yang dihasilkan, terlihat bahwa nilai outliers yang diperoleh hanya berasal dari kolom Score saja.
Praktek
Setelah kita mengetahui syntax untuk mencari nilai IQR pada suatu data, kali ini kita akan mempraktekkannya pada kolom product_weight_gram dari dataset order_df dengan menentukan batas IQR dari kolom tersebut.
import pandas as pdorder_df = pd.read_csv["order.csv"]# Menghitung quartile 1Q1 = order_df[["product_weight_gram"]].quantile[0.25]# Menghitung quartile 3Q3 = order_df[["product_weight_gram"]].quantile[0.75]# Menghitung inter quartile range lalu mencetaknya di consoleIQR = Q3 - Q1print[IQR]
Dari output yang dihasilkan, terlihat bahwa nilai IQR kolom tersebut sebesar 1550.0.
Rename Kolom Data Frame
Pada bagian ini, kita akan mencoba memahami bagaimana caranya mengganti nama kolom dataframe menggunakan Pandas. Pada dasarnya, mengganti nama kolom pada Pandas ini dapat dilakukan dengan 2 cara, yaitu:
1] Menggunakan nama kolom. Syntaxnya adalah sebagai berikut.
Sebagai contoh, kita akan menggunakan fungsi .rename[] ini untuk mengubah nama kolom Age menjadi Umur. Di sini, kita akan menggunakan argumen inplace=True pada fungsi tersebut.
2] Menggunakan indeks kolom. Syntax yang digunakan melibatkan fungsi .columns serta .values[] seperti pada tampilan di bawah ini.
Berbeda dengan contoh sebelumnya, pada contoh berikut kita akan menggunakan nomor indeks dari kolom Age, yaitu 0 untuk mengganti namanya menjadi Umur.
Praktek
Sekarang, kita akan mencoba mengubah kolom freight_value menjadi shipping_cost dalam dataframe order_df dengan menggunakan fungsi .rename[].
import pandas as pdorder_df = pd.read_csv["order.csv"]# Mengganti nama kolom freight_value menjadi shipping_costorder_df.rename[columns={"freight_value": "shipping_cost"}, inplace=True]print[order_df]
Setelah kita mencetak dataframe order_df yang telah diupdate, hasilnya tampak seperti pada gambar berikut. Di sini, urutan 5 baris pertamanya masih tampak seperti pada saat kita menampilkan 10 baris pertamanya pada praktek sebelumnya, terutama pada kolom order_id serta product_weight_gram
Apakah kegunaan .groupby[] dalam Pandas?
.groupby[] sendiri berfungsi mencari summary dari sebuah dataframe dengan menggunakan aggregate dari kolom tertentu.
Nah, sebagai contoh dari penggunaan fungsi tersebut, kita akan mempraktekkannya pada dataframe df seperti yang ditunjukkan pada gambar dibawah ini.
Dari dataset tersebut, kita akan menggunakan fungsi .groupby[] untuk menghitung nilai mean dari kolom Score dengan menggunakan kolom Name sebagai aggregate-nya. Nilai mean tersebut akan dihitung pada tiap-tiap aggregate data dari kolom Name.
Di sini, terlihat bahwa nilai Score dikelompokkan berdasarkan data unik pada kolom Name. Data unik tersebut yaitu Alisa, Bobby, dan Cathrine. Sesuai dengan potongan kode yang telah dieksekusi, yang ditampilkan adalah nilai mean dari Score untuk tiap data unik.
Jika pada contoh sebelumnya kita hanya menggunakan satu aggregate saja, kali ini kita akan mencoba menggunakan dua aggregate kolom, yaitu Name dan Exam untuk menghitung jumlah seluruh nilai dari kolom Score dengan .sum[].
Berbeda dari contoh sebelumnya, di sini dapat kita lihat bahwa nilai dari kolom Score telah dijumlahkan untuk setiap data unik dari kolom Name dan Exam. Di sini, dapat kita lihat data unik dari kolom Exam yang digunakan untuk mengelompokkan nilai dari kolom Score, yaitu Semester 1 dan Semester 2 untuk setiap data unik pada kolom Name.
Praktek
Setelah memahami penggunaan fungsi .groupby[], kali ini kita akan mencoba untuk mencari rata rata dari kolom price dengan mengelompokkannya per payment_type dari dataset order_df. Potongan kodenya adalah sebagai berikut.
import pandas as pdorder_df = pd.read_csv["order.csv"]# Menghitung rata rata dari kolom price per payment_typerata_rata = order_df["price"].groupby[order_df["payment_type"]].mean[]print[rata_rata]
Dari output yang dihasilkan, terlihat bahwa terdapat 4 jenis tipe pembayaran dalam data tersebut, yaitu menggunakan kartu kredit [credit_card], kartu debit [debit_card], e-wallet [e-wallet], dan akun virtual [virtual account]. Rata-rata nilai kolom price untuk masing-masing tipe pembayaran tersebut memiliki jumlah yang hampir sama.
Sorting Menggunakan Pandas
Sorting adalah sebuah metode mengurutkan data berdasarkan syarat kolom tertentu dan biasanya digunakan untuk melihat nilai maksimum dan minimum dari suatu dataset. Adapun fungsi sorting ini dikenal sebagai fundamental dari exploratory data analysis dalam library Pandas. Syntax yang umum digunakan melibatkan fungsi .sort_values seperti pada tampilan berikut.
Pada contoh berikut, kita akan mencoba melakukan sorting terhadap dataset nilai_skor_df berdasarkan kolom Age.
Karena kita menggunakan fungsi tersebut secara default, tampilan data tersebut diurutkan secara menaik berdasarkan banyaknya umur pada kolom Age, yaitu dimulai dari usia 18 tahun.
Yang menjadi pertanyaannya, bagaimana jika seandainya kita ingin mengurutkannya dengan urutan menurun? Nah, untuk mengurutkannya secara descending [menurun], kita dapat melakukannya menggunakan properti tambahan ascending=False pada fungsi .sort_values[].
Misalnya, kita akan melakukan sorting terhadap dataset nilai_skor_df berdasarkan kolom Age dimulai dari umur tertua dengan properti tambahan seperti tadi.
Maka, output yang dihasilkan adalah tampilan dataset nilai_skor_df dengan urutan banyaknya umur dimulai dari yang tertua, yaitu usia 25 tahun.
Selain menggunakan satu kolom, sorting ternyata juga bisa dilakukan terhadap lebih dari satu kolom, lho. Misalnya, pada contoh di bawah ini kita akan mencoba mengaplikasikan fungsi .sort_values[] menggunakan kolom Age dan Score sekaligus, diman kolom Age akan diururtkan secara menaik, sementara kolom Score diurutkan secara menurun.
Praktek
Dari dataframe order_df, kita akan mencari harga maksimum dari pembelian customer pada kolom price. Untuk itu, kita perlu mengurutkannya secara menurun supaya langsung terlihat harga maksimumnya.
import pandas as pdorder_df = pd.read_csv["order.csv"]# Menghitung harga maksimum dari pembelian customersort_harga = order_df.sort_values[by="price", ascending=False]print[sort_harga]
Dari output yang dihasilkan, terlihat bahwa data-data tersebut telah diurutkan mulai dari harga tertinggi pada kolom price. Hal tersebut dapat diamati dari urutan data-data pada kolom order_id serta product_weight_gram yang telah berubah.
Tugas dari Andra
Kali ini, kita akan menganalisa beberapa data penjualan dari dataset oder.csv. Di sini, langkah-langkah yang akan kita lakukan adalah sebagai berikut.
1. Menghitung nilai median price yang dibayar customer dari masing-masing metode pembayaran.
2. Menentukan metode pembayaran yang memiliki basket size [rataan median price] terbesar.
3. Mengubah nama freight_value menjadi shipping_cost serta mencari shipping_cost termahal dari data penjualan tersebut menggunakan sort.
4. Untuk product_category_name, kita akan menghitung rata-rata serta standar deviasi mana yang terkecil dari weight tersebut,
5. Membuat histogram untuk melihat persebaran quantity penjualan dari data tersebut dengan parameter bins = 5 dan figsize= [4,5]
6. Khusus untuk poin 4, kita perlu lebih berhati-hati mengerjakannya supaya hasil analisisnya dapat digunakan dengan baik oleh kepala cabang dalam menyusun strategi free ongkir.
Pertama-tama, kita akan melakukan loading pada order.csv, lalu memasukkannya sebagai dataframe pada variabel order_df.
import pandas as pdimport matplotlib.pyplot as pltorder_df = pd.read_csv["order.csv"]
Lalu, kita akan menghitung median harga [price] dengan mengelompokkannya menurut masing-masing metode pembayarannya [payment_type].
# Menghitung median price yang dibayar melalui masing-masing metode pembayaranmedian_price = order_df["price"].groupby[order_df["payment_type"]].median[]print[median_price]
Hasil:
Kemudian, kita akan mengubah nama kolom freight_value menjadi shipping_cost serta mencari nilai shipping_cost termahal dengan menggunakan fungsi .sort_values[].
# Mengubah freight_value menjadi shipping_cost serta mengurutkan nilainya menggunakan sortorder_df.rename[columns={"freight_value": "shipping_cost"}, inplace=True]sort_value = order_df.sort_values[by="shipping_cost", ascending=0]print[sort_value]
Hasil:
Selanjutnya, kita akan menghitung nilai rata-rata dan standar deviasi masing-masing dengan .mean[] dan .std[], lalu mengembalikan kedua nilai tersebut masing-masing pada variabel mean_value dan std_value.
# Menghitung rata-rata dan standar deviasi yang terkecil dari weight_productmean_value = order_df["product_weight_gram"].groupby[order_df["product_category_name"]].mean[]print[mean_value]std_value = order_df["product_weight_gram"].groupby[order_df["product_category_name"]].std[]print[std_value]
Hasil:
Dan, langkah terkahir yang akan kita lakukan yaitu membuat histogram yang menampilkan persebaran dari quantity penjualan. Di sini, jumlah bins yang akan kita gunakan sebanyak 5 dengan ukuran figsizenya 4,5.
# Membuat histogram quantity penjualan dari datasetorder_df[["quantity"]].hist[figsize=[4, 5], bins=5]plt.show[]
Hasil:
Ok, sekian dulu pembahasan kita kali ini. Semoga pembahasan kita ini bisa bermanfaat banyak bagi kita semua, terutama dalam memahami proses ekslorasi data di Python. See you!
Referensi:
//academy.dqlab.id/main/package/practice/163?pf=0