0% menganggap dokumen ini bermanfaat (0 suara)
192 tayangan15 halaman

Modul 8 Praktikum Pandas

Ringkasan dokumen tersebut adalah: 1. Pandas adalah paket yang dibangun di atas NumPy yang menyediakan DataFrame yang efisien untuk menyimpan dan menganalisis data berlabel. 2. DataFrame memungkinkan penggunaan label untuk baris dan kolom serta dapat menangani data yang hilang atau heterogen. 3. Pandas menyediakan berbagai operasi untuk pengelompokan, pivot, dan analisis data yang tidak terstruktur.

Diunggah oleh

Anandita Putri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
192 tayangan15 halaman

Modul 8 Praktikum Pandas

Ringkasan dokumen tersebut adalah: 1. Pandas adalah paket yang dibangun di atas NumPy yang menyediakan DataFrame yang efisien untuk menyimpan dan menganalisis data berlabel. 2. DataFrame memungkinkan penggunaan label untuk baris dan kolom serta dapat menangani data yang hilang atau heterogen. 3. Pandas menyediakan berbagai operasi untuk pengelompokan, pivot, dan analisis data yang tidak terstruktur.

Diunggah oleh

Anandita Putri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

Modul 9

Pandas

Pandas adalah paket baru yang dibangun di atas NumPy, dan menyediakan
implementasi DataFrame yang efisien. DataFrames pada dasarnya adalah array
multidimenional dengan label baris dan kolom yang dilampirkan, dan seringkali
dengan tipe heterogen dan / atau data yang hilang. Selain menawarkan
antarmuka penyimpanan yang nyaman untuk data berlabel, Pandas
mengimplementasikan sejumlah operasi data yang kuat yang akrab bagi pengguna
kerangka kerja basis data dan program spreadsheet.
Seperti yang kita lihat, struktur data ndarray NumPy menyediakan fitur-fitur
penting untuk jenis data yang bersih dan terorganisir dengan baik yang
biasanya terlihat dalam tugas komputasi numerik. Sementara itu melayani
tujuan ini dengan sangat baik, keterbatasannya menjadi jelas ketika kita
membutuhkan lebih banyak fleksibilitas (melampirkan label ke data, bekerja
dengan data yang hilang, dll.) Dan ketika mencoba operasi yang tidak
memetakan dengan baik untuk penyajian data dengan elemen-elemen tertentu
(pengelompokan, pivots, dll.), yang masing-masing merupakan bagian penting
dari analisis data yang kurang terstruktur yang tersedia dalam berbagai
bentuk di sekitar kita. Pandas, dan khususnya Series dan objek DataFrame-
nya, dibangun di atas struktur array NumPy dan menyediakan akses yang efisien
untuk tugas-tugas penyajian data semacam ini yang akan banyak menghabiskan
waktu para ilmuwan data.
Dalam bab ini, kita akan fokus pada mekanisme penggunaan Series, DataFrame,
dan struktur terkait secara efektif.

9.1 Memasang Pandas


Untuk menginstal Panda pada sistem Python, NumPy harus diinstal, dan jika
sudah membuat pustaka dari sumber, diperlukan alat yang sesuai untuk
mengkompilasi C dan sumber cython tempat Pandas dibangun. Detail tentang
instalasi ini bisa ditemukan di dokumentasi Pandas.
Setelah Pandas diinstal, Anda dapat mengimpor dan memeriksa versinya:

Sama seperti kita umumnya mengimpor NumPy di bawah alias np, kita akan
mengimpor Panda di bawah
alias pd:

9.2 Mengenal Objek Pandas


Pada tingkat yang sangat dasar, objek Pandas dapat dianggap sebagai versi
yang ditingkatkan dari array terstruktur NumPy di mana baris dan kolom
diidentifikasi dengan label dari indeks integer sederhana. Pandas menyediakan
sejumlah alat, metode, dan fungsionalitas yang berguna di atas struktur data
dasar.

Kita memulai sesi kode dengan impor NumPy dan Pandas standar:

1
Objek Series Pandas
Series dalam Pandas adalah array satu dimensi dari data yang diindeks.
Series dapat dibuat dari list atau array sebagai berikut:

Seperti yang kita lihat dalam output diatas, Series ini membungkus urutan
nilai dan urutan indeks, yang dapat kita akses dengan nilai dan atribut
indeks. Nilai hanyalah array NumPy yang sudah dikenal:

Indeks adalah objek mirip array dari tipe pd.index, yang akan kita
diskusikan secara lebih rinci berikut ini:

Seperti halnya array NumPy, data dapat diakses oleh indeks Python:

Seperti yang akan kita lihat, Series dalam Pandas jauh lebih umum dan
fleksibel daripada meniru array NumPy satu dimensi.

Series sebagai array NumPy umum


Dari apa yang telah kita lihat diatas, terlihat bahwa series dalam pandas
pada dasarnya dapat diubah dengan array NumPy satu dimensi. Perbedaan
esensial adalah adanya indeks: sementara array NumPy memiliki indeks integer
yang didefinisikan secara implisit digunakan untuk mengakses nilai-nilai,
Seri Pandas memiliki indeks yang secara eksplisit didefinisikan terkait
dengan nilai-nilai.
Definisi indeks eksplisit ini memberi kemampuan tambahan pada objek Series.
Misalnya, indeks tidak harus berupa bilangan bulat, tetapi dapat terdiri
dari nilai-nilai dari jenis apa pun yang diinginkan. Misalnya, jika
diinginkan, kita dapat menggunakan string sebagai indeks:

2
Kita bahkan dapat menggunakan indeks yang tidak berdampingan atau tidak
penting:

Series sebagai kamus (dictionary) khusus


Series Pandas dapt digunakan seperti spesialisasi kamus (dictionary) Python.
Kamus (dictionary) adalah struktur yang memetakan kunci sembarang ke
sembarang nilai, dan Series adalah sebuah struktur yang memetakan kunci yang
bertipe ke sekumpulan nilai yang bertipe. Pemberian tipe ini penting: sama
seperti kode terkompilasi tipe-spesifik di belakang array NumPy membuatnya
lebih efisien daripada daftar Python untuk operasi tertentu, informasi jenis
Seri Pandas membuatnya jauh lebih efisien daripada kamus Python untuk operasi
tertentu.
Kita dapat membuat analogi Series sebagai kamus (dictionary) yang lebih jelas
dengan membuat objek Series langsung dari kamus (dictionary) Python:

3
Secara default, Series akan dibuat di mana indeks diambil dari kunci yang
diurutkan.
Dari sini, akses item gaya kamus khas dapat dilakukan:

Tidak seperti kamus (dictionary), Series juga mendukung operasi gaya array
seperti slicing / pengirisan:

Membangun objek Series


Kita telah melihat beberapa cara membangun Series Pandas dari awal;
semuanya adalah beberapa versi berikut ini:

di mana indeks adalah argumen opsional, dan data dapat menjadi salah satu
dari banyak entitas.
Misalnya, data bisa berupa daftar atau array NumPy, di mana indeks kasus
default ke urutan bilangan bulat:

data juga dapat berupa skalar, yang diulang untuk mengisi indeks yang
ditentukan:

Data juga dapat berupa kamus (dictionary), di mana indeks default ke kunci
kamus yang diurutkan:

4
Dalam setiap kasus, indeks dapat ditetapkan secara eksplisit jika ingin
mendapatkan hasil yang berbeda:

Perhatikan bahwa dalam kasus ini, Series hanya diisi dengan yang
diidentifikasi secara eksplisit kunci.

Objek DataFrame Pandas


Struktur fundamental berikutnya dalam Pandas adalah DataFrame. Seperti objek
Series yang dibahas pada bagian sebelumnya, DataFrame dapat dianggap sebagai
generalisasi array NumPy, atau sebagai spesialisasi kamus Python. kita
sekarang akan melihat masing-masing dari perspektif ini.

DataFrame sebagai array NumPy umum


Jika Series adalah analog dengan array satu dimensi dengan indeks fleksibel,
DataFrame adalah analog array dua dimensi dengan indeks nama baris fleksibel
dan nama kolom fleksibel. Kita mungkin menganggap array dua dimensi sebagai
urutan kolom-kolom satu dimensi yang diurutkan, kita bisa menganggap
DataFrame sebagai urutan objek Seri yang disejajarkan. Di sini, dengan
"disejajarkan" yang kita maksudkan adalah mereka memiliki indeks yang sama.
Untuk mendemonstrasikan ini, pertama mari kita membangun Series baru yang
mencantumkan area masing-masing dari lima negara yang dibahas di bagian
sebelumnya:

Sekarang kita memiliki series area bersama dengan Series populasi dari
sebelumnya. Kita dapat menggunakan sebuah kamus untuk membuat objek dua
dimensi tunggal yang berisi informasi ini:

5
Seperti objek Series, DataFrame memiliki atribut indeks yang memberikan
akses ke label indeks:

Selain itu, DataFrame memiliki atribut kolom, yang merupakan objek Indeks
label kolom:

Dengan demikian DataFrame dapat dianggap sebagai generalisasi dari array


NumPy dua dimensi, di mana baik baris dan kolom memiliki indeks umum untuk
mengakses data.

DataFrame sebagai kamus khusus


Kita juga dapat menganggap DataFrame sebagai kamus (dictionary) khusus. kamus
(dictionary)ini memetakan kunci ke nilai, DataFrame memetakan nama kolom ke
Series data kolom. Misalnya, meminta atribut 'area' mengembalikan objek
Series yang berisi area yang kita lihat sebelumnya:

Perhatikan titik potensi kebingungan di sini: dalam array NumPy dua dimensi,
data [0] akan mengembalikan/mengeluarkan baris pertama. Untuk DataFrame,
data ['col0'] akan mengembalikan/mengeluarkan kolom pertama. Karena itu,
DataFrames lebih cocok sebagai kamus umum daripada array yang digeneralisasi,
meskipun kedua cara memandang situasi bisa berguna.

Membangun objek DataFrame


DataFrame Pandas dapat dibangun dengan berbagai cara. Di sini kita akan
memberikan beberapa contoh.
Dari objek Seri tunggal. DataFrame adalah kumpulan objek Series, dan
DataFrame kolom tunggal dapat dibangun dari Seri tunggal:

6
Dari sebuah list dictionary. List dictionary (Daftar kamus) dapat dibuat
menjadi DataFrame. Kita akan menggunakan pemahaman daftar sederhana untuk
membuat beberapa data:

Bahkan jika beberapa kunci dalam kamus tidak ada, Pandas akan mengisinya
dengan nilai NaN (Not a Number atau “Bukan angka”):

Dari kamus objek Seri. Seperti yang kita lihat sebelumnya, DataFrame dapat
dibangun dari kamus objek Seri juga:

Dari array NumPy dua dimensi. Diberikan array data dua dimensi, kita bisa
membuat DataFrame dengan nama kolom dan indeks yang ditentukan. Jika
dihilangkan, indeks integer akan digunakan untuk masing-masing:

7
Dari array terstruktur NumPy. Pandas DataFrame beroperasi sangat mirip
dengan susunan terstruktur, dan dapat dibuat langsung dari satu:

9.3 Objek Indeks Pandas


Kita telah melihat di sini bahwa kedua objek Seri dan DataFrame berisi indeks
eksplisit yang memungkinkan Anda referensi dan memodifikasi data. Objek
Indeks ini adalah struktur yang menarik dalam dirinya sendiri, dan dapat
dianggap sebagai array yang tidak berubah atau sebagai set yang dipesan
(secara teknis multiset, karena objek Indeks dapat berisi nilai yang
diulang). Pandangan tersebut memiliki beberapa konsekuensi menarik dalam
operasi yang tersedia pada objek Indeks. Sebagai contoh sederhana, mari buat
Indeks dari daftar bilangan bulat:

Indeks sebagai array yang tidak berubah


Objek Indeks dalam banyak hal beroperasi seperti array. Sebagai contoh,
kita dapat menggunakan notasi pengindeksan Python standar untuk mengambil
nilai atau irisan:

Objek indeks juga memiliki banyak atribut yang familier dari array NumPy:

Satu perbedaan antara objek Indeks dan array NumPy adalah bahwa indeks
tidak dapat diubah - yaitu, mereka tidak dapat dimodifikasi melalui cara
normal:

8
Kekekalan ini membuatnya lebih aman untuk berbagi indeks antara beberapa
DataFrames dan array, tanpa potensi efek samping dari modifikasi indeks yang
tidak disengaja.

Indeks sebagai set yang dipesan


Objek pandas dirancang untuk memfasilitasi operasi seperti bergabung di
seluruh dataset, yang bergantung pada banyak aspek himpunan aritmatika. Objek
Indeks mengikuti banyak konvensi yang digunakan oleh struktur data bawaan
Python, sehingga serikat pekerja, persimpangan, perbedaan, dan kombinasi
lainnya dapat dihitung dengan cara yang akrab:

Operasi ini juga dapat diakses melalui metode objek — misalnya, bagian
indA.inter (indB).

9.4 Pengindeksan dan Pemilihan Data


Dalam modul praktikum Numpy, kita melihat secara rinci pada metode dan alat
untuk mengakses, mengatur, dan memodifikasi nilai dalam array NumPy. Ini
termasuk pengindeksan (misalnya, arr [2, 1]), mengiris (misalnya, arr [:, 1:
5]), masking (misalnya, arr [arr> 0]), pengindeksan mewah (misalnya, arr [0,
[ 1, 5]]), dan kombinasi keduanya (mis. Arr [:, [1, 5]]). Di sini kita akan
melihat cara yang sama untuk mengakses dan mengubah nilai dalam Series Pandas
dan objek DataFrame. Jika Anda telah menggunakan pola NumPy, pola yang sesuai
di Pandas akan terasa sangat familier, meskipun ada beberapa kebiasaan yang
harus diperhatikan.

Kita akan mulai dengan kasing sederhana objek Seri satu dimensi, lalu beralih
ke objek DataFrame dua dimensi yang lebih rumit.

9
Pemilihan Data dalam Seri
Seperti yang kita lihat di bagian sebelumnya, objek Seri bertindak dalam
banyak cara seperti array NumPy satu dimensi, dan dalam banyak cara seperti
kamus Python standar. Jika kita mengingat dua analogi yang tumpang tindih
ini, ini akan membantu kita untuk memahami pola-pola pengindeksan dan
pemilihan data dalam array ini.

Series sebagai kamus (dictionary)


Seperti kamus, objek Series menyediakan pemetaan dari kumpulan kunci ke
kumpulan nilai:

Kita juga dapat menggunakan ekspresi dan metode Python seperti kamus untuk
memeriksa kunci / indeks dan nilai-nilai:

Objek series bahkan dapat dimodifikasi dengan sintaksis seperti kamus. Sama
seperti Anda dapat memperluas kamus dengan menetapkan ke kunci baru, Anda
dapat memperluas Seri dengan menetapkan ke nilai indeks baru:

Mutabilitas objek yang mudah ini adalah fitur yang mudah digunakan. Pandas
membuat keputusan tentang tata letak memori dan penyalinan data yang mungkin
perlu dilakukan; pengguna umumnya tidak perlu khawatir tentang masalah ini.

10
Series sebagai array satu dimensi
Serangkaian dibangun pada antarmuka seperti kamus ini dan menyediakan
pemilihan item gaya array melalui mekanisme dasar yang sama dengan array
NumPy — yaitu, irisan, masking, dan pengindeksan mewah. Contohnya adalah
sebagai berikut:

Di antaranya, mengiris mungkin menjadi sumber kebingungan yang paling banyak.


Perhatikan bahwa ketika Anda mengiris dengan indeks eksplisit (yaitu, data
['a': 'c']), indeks akhir termasuk dalam slice, sedangkan ketika Anda
mengiris dengan indeks implisit (yaitu, data [0 : 2]), indeks akhir tidak
termasuk dalam slice.

Pengindeks: loc, iloc, dan ix


Konvensi pengiris dan pengindeksan ini dapat menjadi sumber kebingungan.
Misalnya, jika Series Anda memiliki indeks integer eksplisit, operasi
pengindeksan seperti data[1] akan menggunakan indeks eksplisit, sementara
operasi pengirisan seperti data[1: 3] akan menggunakan indeks gaya Python
implisit.

11
Karena potensi kebingungan ini dalam kasus indeks integer, Pandas menyediakan
beberapa atribut pengindeks khusus yang secara eksplisit mengekspos skema
pengindeksan tertentu. Ini bukan metode fungsional, tetapi atribut yang
mengekspos antarmuka pengiris tertentu ke data dalam Series.
Pertama, atribut loc memungkinkan pengindeksan dan pemotongan yang selalu
merujuk pada indeks eksplisit:

Atribut iloc memungkinkan pengindeksan dan pemotongan yang selalu merujuk


pada implisit Indeks gaya python:

Atribut pengindeksan ketiga, ix, adalah hibrid dari keduanya, dan untuk objek
Seri setara dengan pengindeksan berbasis standar []. Tujuan pengindeks ix
akan menjadi lebih jelas dalam konteks objek DataFrame, yang akan kita bahas
sebentar lagi.
Salah satu prinsip panduan kode Python adalah bahwa "eksplisit lebih baik
daripada implisit." Sifat eksplisit loc dan iloc membuatnya sangat berguna
dalam menjaga kode yang bersih dan mudah dibaca; terutama dalam hal indeks
integer, saya sarankan menggunakan keduanya untuk membuat kode lebih mudah

12
dibaca dan dipahami, dan untuk mencegah bug halus karena konvensi
pengindeksan / pengiris campuran.

9.5 Seleksi Data dalam DataFrame


Ingatlah bahwa DataFrame bertindak dalam banyak cara seperti array dua
dimensi atau terstruktur, dan dengan cara lain seperti kamus struktur Seri
berbagi indeks yang sama. Analogi-analogi ini dapat membantu untuk diingat
ketika kita mengeksplorasi pemilihan data dalam struktur ini.

DataFrame sebagai kamus


Analogi pertama yang akan kita pertimbangkan adalah DataFrame sebagai kamus
objek Seri terkait. Mari kita kembali ke contoh area dan populasi negara
bagian kita:

Seri individual yang membentuk kolom DataFrame dapat diakses melalui


pengindeksan gaya kamus dari nama kolom:

Secara setara, kita bisa menggunakan akses gaya-atribut dengan nama kolom
yang bersifat string:

Akses kolom gaya atribut ini sebenarnya mengakses objek yang sama persis
dengan akses gaya kamus:

13
Meskipun ini adalah singkatan yang berguna, perlu diingat bahwa ini tidak
bekerja untuk semua kasus! Misalnya, jika nama kolom bukan string, atau jika
nama kolom bertentangan dengan metode DataFrame, akses gaya-atribut ini tidak
dimungkinkan. Misalnya, DataFrame memiliki metode pop(), jadi data.pop akan
mengarah ke ini daripada kolom "pop":

Khususnya, Anda harus menghindari untuk mencoba penugasan kolom melalui


atribut (mis., Gunakan data ['pop'] = z daripada data.pop = z).
Seperti dengan objek Seri yang dibahas sebelumnya, sintaks gaya kamus ini
juga dapat digunakan untuk memodifikasi objek, dalam hal ini untuk
menambahkan kolom baru:

Ini menunjukkan pratinjau sintaksis langsung aritmatika elemen demi elemen


antara objek Seri; kita akan menggali lebih jauh dalam "Operasi Data di
Pandas" di halaman 115.

DataFrame sebagai array dua dimensi


Seperti disebutkan sebelumnya, kita juga bisa melihat DataFrame sebagai
array dua dimensi yang disempurnakan. Kita bisa memeriksa array data dasar
yang mentah menggunakan atribut nilai:

Dengan ini, kita bisa melakukan banyak pengamatan mirip array pada
DataFrame itu sendiri. Sebagai contoh, kita dapat mengubah seluruh
DataFrame untuk bertukar baris dan kolom:

14
Ketika datang ke pengindeksan objek DataFrame, bagaimanapun, jelas bahwa
pengindeksan kolom-gaya kamus menghalangi kemampuan kita untuk hanya
memperlakukannya sebagai array NumPy. Secara khusus, meneruskan indeks
tunggal ke array mengakses baris:

15

Anda mungkin juga menyukai