Eksplorasi data dengan Python |
Halo teman-teman, kita bertemu kembali untuk berbagi mengenai pemanfaatan Python dengan GUI Jupyter Notebook di blog sederhana ini. Pada unggahan sebelumnya, kita telah bersama-sama belajar dan berbagi mengenai bagaimana melakukan download, instalasi Python Jupyter Notebook, import data Excel ke dalam Python serta bagaimana melakukan import data berekstensi CSV dalam Python, maka kali ini kita akan melanjutkan berbagi mengenai bagaimana kita menggunakan fungsi filter dan transpose data dengan package Pandas.
Di era Data Science, Big Data, dan maraknya penggunaan Machine Learning, kita akan dihadapkan pada istilah-istilah baru, salah satunya adalah data wrangling. Data wrangling merupakan sebuah proses tak terpisahkan dalam olah hingga analisis data. Aktivitas ini selain meliputi bagaimana kita memanajemen sebuah data, juga meliputi bagaimana kita menciptakan transformasi-transformasi untuk membentuk data turunan atau subset dari data utama (induk). Transformasi dari sebuah data utama secara umum dilakukan dengan cara menggabungkan data-data yang ada, memecah data dari gabungan variabel menjadi variabel yang terpisah, memecah data menjadi sebuah variabel yang berdiri sendiri, atau mengekstraksi data menjadi subset data-data baru yang merupakan bagian dari data utama.
Kalau di R, proses data wrangling biasanya menggunakan package dplyr, tetapi di dalam Python, kita dalam melakukan data wrangling menggunakan package Pandas. Kedua package yang menurut saya sama-sama powerfull untuk dalam data processing.
Baik, itu sekilas pengantar kita kali ini. Selanjutnya kita akan mencoba mempraktikkan bagaimana melakukan salah satu data wrangling menggunakan fungsi-fungsi Filter dan transpose data menggunakan Pandas. Data yang akan kita gunakan kali ini merupakan data sederhana saja alias dummy data. Yaitu data mengenai nilai tes Biologi dan Fisika berdasarkan nama grup (di sini). Data-data lain bisa teman-teman generate sendiri atau bisa juga menggunakan data-data yang tersedia dalam blog ini. Data tersebut bisa dipilih saja sesuai kebutuhan (silakan klik di sini).
Setelah datanya telah disiapkan, kita dapat melakukan proses filter dan transpose data memakai package Pandas dengan beberapa code berikut:
#Aktivasi package pandas
import pandas as pd
#Import data csv
df = pd.read_csv("C:\\Users\\56848\\data\\datanilai.csv", sep = ",")
df
Data awal hasil import |
df.describe()
Statistik deskriptif dari data |
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 nomor 5 non-null int64 1 grup 5 non-null object 2 nilaibiologi 5 non-null int64 3 nilaifisika 5 non-null int64 dtypes: int64(3), object(1) memory usage: 288.0+ bytes
#Filter data hanya untuk Grup A saja
dfA = df[df.grup == "A"]
dfA
Filter grup A saja |
#Filter data hanya untuk Grup A atau C saja
dfAC = df[(df.grup == "A")|(df.grup == "C")]
dfAC
Filter grup A atau C |
#Filter data hanya untuk Grup A dan nilai Fisikanya > 70
dfAFis = df[(df.grup == "A")&(df.nilaifisika > 70)]
dfAFis
Filter grup A yang nilai fisikanya lebih 70 |
#Memanggil data dengan nilai Fisika tidak sama dengan 88 atau selain nilai 88
df[df.nilaifisika != 88]
Filter yang nilai fisikanya selain 88 |
#Memanggil data yang grupnya D (cara lain)
df[df["grup"].str.contains("D")]
Filter grup yang mengandung string "D" |
#Memanggil data dengan nilai Biologinya > 70 dan < 95
df[(df['nilaibiologi'] > 70)&(df['nilaibiologi'] < 95)]
Filter yang nilai Biologinya lebih dari 70 dan kurang dari 95 |
#Menjadikan kolom nomor sebagai indeks supaya lebih baik
dfin = df.set_index('nomor')
dfin
menjadikan kolom nomor sebagai indeks data |
#Memanggil baris 1 sampai 3 untuk seluruh kolom
#Indeks dalam Python dimulai dari 0
dfin.iloc[0:3,]
Memanggil data baris 1 sampai 3 untuk seluruh kolom |
#Memanggil baris 3 sampai 4 untuk seluruh kolom
dfin.iloc[2:4,0:3]
Memanggil data baris 3 sampai 4 untuk seluruh kolom |
#Memanggil baris 3 sampai 4 untuk kolom 2 (nilai biologi)
dfin.iloc[2:4,1:2]
Memanggil data baris 3 sampai 4 untuk kolom 2 (nilai Biologi) |
#Memanggil baris 3 sampai 4 untuk kolom 2 sampai 3
dfin.iloc[2:4,1:3]
Memanggil data baris 3 sampai 4 untuk kolom 2 sampai 3 |
#Melakukan transpose data dfin
dfin.transpose()
Melakukan transpose data |