Anda di halaman 1dari 26

Modul Pelatihan Python

P2 – Pengolahan Data Menggunakan


Pandas

EMBEDDED & CYBER PHYSICAL SYSTEM LABORATORY


DEPARTEMEN TEKNIK FISIKA
FAKULTAS TEKNOLOGI INDUSTRI & REKAYASA SISTEM
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA
NumPy dan Pandas
A. Pandas
Pandas merupakan package Phyton open source yang sangat umum digunakan dalam
dunia analisis data serta machine learning. Pandas bertugas untuk mengolah serta
mempersiapkan data agar data tersebut dapat diaplikasikan untuk keperluan yang
diinginkan. Pandas sendiri dibentuk bedasarkan library NumPy yang memiliki fungsi
serupa dengan pandas, yang berarti library NumPy dibutuhkan agar dapat menggunakan
Pandas. Berikut merupakan perbedaan Pandas dengan NumPy

Komparasi Pandas NumPy


Digunakan Ketika Tabulasi data Data numerik
mengolah
Tools andalan DataFrame, Series Arrays
Penggunaan memori Menggunakan relatif banyak Efisien dalam pengunaan
memori memori
Peforma Bagus untuk data dengan Bagus untuk data dengan
jumlah baris lebih dari 500 jumlah baris kurang dari 50
ribu ribu
Lama proses indexing Sangat lambat dibandingkan Sangat cepat
dengan NumPy
Objek yang ditawarkan Table berupa DataFrame Multi-dimensional array

B. DataFrame pada Pandas


DataFrame merupakan salah satu fitur utama dari Pandas. Dengan menggunakan
DataFrame, kita dapat membuat tabel yang isinya dapat diatur sesuai dengan kebutuhan.
Tabel yang dibuat dengan menggunakan DataFrame terdiri atas kolom dan baris yang
dapat diberi label.

Gambar 1 DataFrame
Pandas menyediakan beberapa metode untuk membuat DataFrame seperti mengisi
nilai bedasarkan kolom dan mengisi nilai bedasarkan baris, berikut merupakan contoh
program untuk membuat DataFrame dengan mengisi nilai bedasarkan kolom.

Gambar 2 Membuat DataFrame bedasarkan kolom

Hasil yang sama dapat diperoleh dengan membuat DataFrame dan mengisi nilainya
bedasarkan baris seperti berikut.

Gambar 3 Membuat DataFrame bedasarkan baris

Selain itu, kita dapat pula mengubah label kolom atau baris dengan cukup mudah
dengan menggunakan fitur index dan columns seperti berikut.

Gambar 4. Mengubah label kolom dan baris


C. Dasar NumPy
Walaupun memiliki fungsi yang hamper mirip, sering kali NumPy atau Numerical
Python digunakan bersamaan dengan Pandas. NumPy memiliki spesialisasi pada
pengolahan data array dan digunakan karena performanya yang cepat. Selain itu, NumPy
juga mendukung operasi matematis seperti transformasi fourier serta aljabar linear.
Berikut merupakan contoh membuat array 1 dimensi sederhana menggunakan fungsi
array pada NumPy

Gambar 5 Membuat array 1 dimensi

NumPy juga dapat membuat array multi dimensi seperti berikut

Gambar 6. Membuat array 2 dimensi

Dengan NumPy kita juga dapat mengakses elemen array pada index tertentu dengan
catatan nomor indexing pada NumPy dimulai dari 0

Gambar 7 Mengakses elemen pada baris tertentu

NumPy juga dapat membuat array yang hanya berisikan angka 0 atau 1 dengan
menggunakan fungsi zeros serta ones

Gambar 8 Menggunakan fungsi zeros dan ones

Lalu NumPy juga dapat melakukan operasi statistik seperti total nilai data, mencari
nilai minimal dan maksimal, standard deviasi dan lain sebagainya
Gambar 9 Operasi statistik menggunakan NumPy

D. Manipulasi DataFrame menggunakan Pandas


Seperti yang sudah disinggung sebelumnya, spesialisasi Pandas secara garis besar
adalah pengolahan data tabulasi. Berikut merupakan beberapa fitur manipulasi DataFrame
yang disediakan oleh Pandas.
Tebel berikut merupakan tabel yang akan menjadi objek kerja.
Dikarenakan Pandas dibuat bedasarkan NumPy, maka ada Pandas juga terdapat fitur-
fitur seperti NumPy yang dapat diimplementasikan dalam data tabel seperti operasi statistik
berikut.

Gambar 10 Tabel kerja


Gambar 11 Operasi statistik oleh Pandas

Contoh pada gambar 11 merupakan operasi statistik pada seluruh bagian tabel, Pandas
juga dapat melakukan operasi statistik tertentu pada kolom tertentu seperti berikut

Gambar 12 Operasi statistik tertentu pada kolom tertentu

Pandas juga dapat menambahkan serta menghilangkan kolom pada DataFrame seperti
berikut

Gambar 13 Menambahkan dan Menghilangkan Kolom


Dalam menghilangkan baris atau kolom, jika ingin menerapkan perubahan pada
DataFrame parameter inplace diisikan ‘True’. Sedangkan parameter axis menunjukan
apakah baris atau kolom yang akan dihapus dimana bernilai ‘0’ untuk baris dan ‘1’ untuk
kolom.
E. Menyimpan dan Membaca File Menggunakan Pandas
Pandas dapat menyimpan DataFrame yang sudah dibuat kedalam file berformat csv
agar dapat digunakan kembali. Berikut merupakan cara menyimpan file dalam Pandas

Gambar 14 Menyimpan file menggunakan Pandas

Jika sudah terdapat data yang akan ditabulasikan untuk menjadi objek kerja, maka
Pandas juga menyediakan fitur untuk membaca file dari luar. File yang paling umum
digunakan dalam Pandas yaitu file data berformat csv. Namun, Pandas juga dapat membaca
file json, html, excel, SQL, serta pickle.

Gambar 15 Membaca File menggunakan Pandas


Indexing, Transformasi, dan Filtering pada Dataframe
A. Indexing
Indexing adalah memilih bagian tertentu dari dataframe yang kemudian dapat disimpan
dalam variabel. Pada materi ini akan digunakan contoh dataframe yakni kumpulan data
pokemon sebagai berikut:

1. Indexing Kolom

Untuk mengambil kolom bagian nama dari pokemon maka dapat dilakukan:
Untuk mengambil data dari dua atau lebih kolom sekaligus maka indexing dapat
menggunakan list dari Label kolom

Dimana [‘Name’, ‘HP’] adalah sebuah list dari label kolom.


2. Indexing baris

Untuk mengambil data dengan kondisi tertentu, misalkan pokemon dengan Attack
yang lebih besar dari 150 maka dapat dilakukan indexing sebagai berikut
Dimana indexing untuk baris dilakukan dengan memberikan tabel boolean satu kolom
dengan banyak baris yang sama dengan dataframe atau disebut panda’s series. Kemudian data
yang dikembalikan adalah pada lokasi baris yang bernilai ‘true’. Contoh perhatikan kode
berikut
Untuk index dengan syarat yang lebih dari satu maka dapat menggunakan AND dan OR
3. Indexing Baris dan Kolom yang Spesifik

• Loc indexing
Method loc digunakan ketika indexing dengan menggunakan Label dan boolean series
dari data. Contoh berikut adalah dataframe berisi nama dari pokemon legendaris.

• Iloc Indexing
Method iloc digunakan ketika indexing menggunakan posisi (integer). Posisi yang
diberikan dapat berupa list (cth: [1, 3, 6]), slice object (cth: 1:3), dan boolean array. Misalkan
pada kode berikut akan dipilih data pada tabel dari baris pertama sampai kelima dan kolom
kedua sampai keenam.

B. Transformasi Data
Pada dataframe dapat dilakukan berbagai macam perlakuan mulai dari mengganti nilai,
mencari rata-rata, median, dan atau fungsi yang dideklerasikan sendiri.
1. Mengganti Nilai Pada Dataframe Menggunakan Indexing
Indexing dapat digunakan untuk melakukan berbagai macam perlakuan pada bagian yang
dituju pada dataframe. Contohnya adalah mengganti semua nama pokemon dari datafreame
‘indexing_test’ dengan “Pokemon Name”.

2. Berbagai macam Method pada Dataframe


Pada dataframe yang sudah disimpan dapat dilakukan berbagai macam perlakuan
menggunakan Method yang tersedia pada Pandas. Pada modul ini akan dibahas contoh dua
method yakni pd.dataframe.mean() dan pd.dataframe.apply(). Untuk mencari Method lain yang
sesuai kebutuhan dapat merujuk pada dokumentasi pandas. Contohnya terdapat method untuk
menghapus satu kolom seperti pd.dataframe.drop(), kemudian terdapat method untuk merubah
nilai NaN (nilai kosong) pada suatu data frame menggunakan pd.dataframe.filna.
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html

• Mean Method
Method ini mencari rata-rata dari dataframe yang dituju. Dimana terdapat parameter ‘axis’
yang nilai defaultnya axis=0, artinya rata- akan dilakukan pada setiap kolom. Untuk axis=1
rata-rata akan dilakukan pada setiap baris.
method juga dapat dilakukan pada dataframe yang telah terindeks, kemudian
menambahkannya menjadi kolom baru pada dataframe. Misalkan:

• Apply Method
Method ini digunakan ketika ingin memperlakukan dataframe sesuai fungsi yang telah
dideklerasikan sendiri. Misalkan fungsi berikut menambahkan nilai Attack dan Defense.
• Unique Method
Method ini digunakan pada array 1D seperti series atau index. Fungsi method ini adalah
mengembalikan nilai “unik” atau nilai yang tidak kembar pada array.

Reshaping Data
Struktur data inti Pandas adalah DataFrame yang merepresentasikan data dalam bentuk tabel
dengan baris dan kolom. Dalam beberapa kasus kita perlu melakukan reshaping terhadap data
untuk mengubah data yang tidak rapi menjadi data yang lebih relevan. Reshaping adalah proses
mengubah struktur data agar mudah dianalisis dan mudah dibaca. Dalam data terdapat 2 bentuk
data, yaitu data memanjang (Long Data) dan data melebar (Wide Data).
Dalam Reshaping Data terdapat 2 metode, yaitu:
A. Pivot
Pivoting adalah suatu pengubahan bentuk data dengan memutar data yang
terletak pada baris menjadi kolom. Kita juga dapat mengatakan pivoting adalah
melakukan perubahan pada bentuk data dari yang tadinya panjang menjadi lebar.
Sebagai contoh, telah disajikan data kondisi cuaca di berbagai kota.
Untuk pivoting sebuah DataFrame tersebut maka perlu menuliskan
df.pivot(index=’city’,columns=’date’). Dengan index adalah variable yang akan
diletakkan pada baris. Sedangkan columns merupakan variable yang akan diletakkan
pada kolom. Dengan perintah tersebut maka dihasilkan bentuk data seperti gambar di
bawah:

Adapun ketika kita hanya ingin menampilkan data tertentu, maka perlu
ditambahkan variable values. Sebagai contoh ketika kita hanya ingin menampilkan data
humidity, maka perlu menambahkan values=humidity.
Sekarang telah disajikan data yang berbeda dengan data di atas, di data ini
tertulis dalam satu hari, sebuah kota mempunyai 2 data temperature dan humidity.
Untuk meringkas dan menggabungkan data tersebut, maka diperlukan pivot_table
sehingga data berubah menjadi:

Kita juga dapat menambahkan aggregate function, yaitu fungsi yang digunakan
untuk menggabungkan data, seperti penjumlahan, pengurangan dll.

B. Melt
Melting juga biasa disebut dengan unpivoting, yaitu, suatu metode untuk
mengubah data lebar menjadi panjang (wide to long). Kebalikan dari pivot yang
menggabungkan beberapa kolom menjadi satu, dalam metode melt data akan menjadi
lebih panjang dari sebelumnya.
Metode Melt berguna ketika ada suatu kasus dimana terdapat satu atau lebih
kolom yang merupakan identifier variable, dan kolom lain adalah measure variabel.
Identifier variabel adalah suatu entitias yang melakukan identifikasi terhadap suatu
variabel yang sedang di ukur. Apabila kita memiliki suatu besaran yang nilainya selalu
berubah, kemudian kita ingin mengamati perubahan itu, berarti kita sedang
memperlakukan besaran itu sebagai measure variabel. dan kita perlu sesuatu yang
mereferensikan perubahan tersebut. hal itu di sebut identifier variable.
Sebagai contoh, telah disajikan dataframe yang menampilkan data suhu berbagi
kota dari hari minngu-senin sebagai sebikut.

Untuk mengubah data tersebut menjadi data panjang, maka pelu dilakukan
reshaping data menggunakan metode melt dengan cara sebagai berikut:

Misalnya jika kita ingin mengubah nama variable menjadi city dan value
menjadi temperature pada bagian kolom, maka tambahkan var_name=city dan
value_name=temperature. Sehingga akan berubah seperti gambar berikut:
Kita juga dapat menampilkan data tertentu, misalnya kita hanya ingin
menampilkan data pada kota berlin, maka tambahkan perintah
melted1[melted1["city"]=="berlin"]. Sehingga data yang muncul hanya data
temperature pada kota Berlin seperti pada gambar berikut.

Grouping Data
Dengan grouping data, kita dapat melakukan pengelompokan data berdasarkan nama tertentu dan
menghitung statistiknya. Pada kali ini, kita akan menggunakan contoh dataframe mengenai hewan.
Dengan memberikan perintah tersebut maka dataframe akan mengroup data berdasarkan kolom class.

Dari hasil grouping data tersebut, dapat dicari rata-rata dari dataframe tersebut dengan menggunakan
fungsi .mean()

Secara default, hasil yang akan ditampilkan adalah semua data yang dapat dilakukan fungsi agregasi.
Pada contoh ini, kolom yang dapat dihitung rata-ratanya hanya kolom max_speed, weight dan
population sedangkan kolom order tidak muncul karena kolom tersebut tidak dapat dihitung rata-
ratanya.

Kita juga dapat multiple groupby, misalnya pada dataframe sebelumnya kita ingin melakukan grouping
berdasarkan class dan order

Selain mengroup berdasarkan 2 kolom tersebut, kita juga dapat menentukan kolom apa saja yang akan
ditampilkan hasilnya, misalnya kita ingin menampilkan hasil untuk kolom max_speed dan weight saja
Fungsi aggregasi tidak hanya dapat diberikan 1 untuk setiap dataframe melainkan dapat ditambahkan
sesuai dengan keinginan, misalkan kita ingin menampilkan rata-rata dan jumlah data dari dataframe

Kita juga dapat membuat fungsi agregasi sendiri dengan mendeklarasikan fungsi yang kita inginkan
terlebih dahulu kemudian ditampilkan, misalnya kita ingin membuat perhitungan rata-rata dikurangi
jumlah data

Bisa dilihat bahwa fungsi aggregasi yang kita berikan akan dilakukan untuk setiap kolom. Jika kita
tidak menginginkan hal tersebut, kita juga bisa menentukan data apa yang akan ditampilkan untuk
masing-masing kolom, misalnya untuk kolom max_speed akan ditampilkan nilai rata-rata dan pada
kolom weight akan ditampilkan nilai rata-rata dikurang jumlah data
Merging Dataframe
Merging data berfungsi untuk menggabungkan dua atau lebih dataframe menjadi satu dataframe. Untuk
melakukan merging dataframe, terdapat dua metode yang dapat digunakan yaitu metode concat dan
metode .merge. Perbedaan dari kedua metode tersebut adalah metode concat digunakan untuk
menggabungkan dataframe sedangkan metode .merge digunakan untuk memasukkan data.

• Metode Concat

Contoh dataframe yang akan kita gunakan pada metode concat adalah sebagai berikut.

Untuk menggabungkan dataframe menggunakan metode concat, hal pertama yang harus dilakukan
adalah melist dataframe apa saja yang ingin digabungkan kemudian ditampilkan

Bisa dilihat bahwa setelah dataframe digabung, data tetap mempertahankan indexnya masing-masing.
Untuk membedakan index tersebut dapat ditambahkan ungsi ignore index

Kita tidak hanya dapat menggabungkan terhadap baris, tetapi kita juga dapat menggabungkan
terhadapat kolom. Untuk menggabungkan dataframe terhadap kolom maka diberikan fungsi axis
• Metode .Merge

Contoh dataframe yang akan kita gunakan untuk metode merge adalah sebagai berikut.

Karena metode .merge digunakan untuk memasukkan data, maka diperlukan satu kolom yang sama
untuk dijadikan acuan. Pada dataframe diatas, masing-masing memiliki data kolom yang sama yaitu
pada employee sehingga kolom tersebut otomatis menjadi key Ketika dataframe digabung. Untuk
menggabungkan dataframe menggunakan metode merge maka dapat dituliskan

Jika tidak terdapat kolom yang sama, maka kita dapat menggabungkannya dengan cara menjadikan
kolom tersebut menjadi acuan.
Bisa dilihat pada dataframe diatas, data pada kolom employee dan name adalah sama. Agar terlihat
lebih rapi, kita ingin menghilangkan kolom name. Untuk menghilangkan kolom tersebut dapat
dituliskan

Dari contoh-contoh diatas, kita telah mempelajari cara untuk menggabungkan dataframe. Sekarang, kita
akan mempelajari cara menggabungkan dataframe dengan himpunan aritmatika. Hal ini digunakan
Ketika sebuah data muncul disatu kolom kunci tetapi tidak pada kolom lainnya. Pada contoh ini, kita
akan menggunakan dataframe sebagai berikut.

Fungsi yang digunakan disini adalah fungsi how. Terdapat 4 fungsi yaitu inner, outer, left dan right.
Inner menggabungkan hanya data yang sama.

Outer menggabungkan seluruh data dan memberikan nilai NaN untuk data tidak ada.
Left menggabungkan data sesuai dengan dataframe kiri/dataframe pertama

Right menggabungkan data sesuai dengan dataframe kanan/dataframe kedua

Anda mungkin juga menyukai