Modul 8 Praktikum Pandas
Modul 8 Praktikum Pandas
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.
Sama seperti kita umumnya mengimpor NumPy di bawah alias np, kita akan
mengimpor Panda di bawah
alias pd:
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.
2
Kita bahkan dapat menggunakan indeks yang tidak berdampingan atau tidak
penting:
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:
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.
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:
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.
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:
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.
Operasi ini juga dapat diakses melalui metode objek — misalnya, bagian
indA.inter (indB).
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.
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:
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 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.
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":
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