Dalam analisis data ada kalanya kita ingin melakukan agregasi data seperti mencari jumlah data, mencari rata-rata atau total nilai
Kita bisa gunakan fungsi GroupBy()
Fungsi GroupBy() memungkinkan kita untuk mengelompokkan data dalam kumpulan item yang sama misalnya dalam lokasi, produk, tingkat pendidikan, jenis kelamin, dan kategori lainnya
Misalnya begini, Kita punya data mahasiswa yang mempunyai atribut nama, alamat, jenis kelamin dan nilai
Dari data ini kita bisa mencari tahu total nilai atau rata-rata nilai berdasarkan alamat dan jenis kelamin
Oke, kita coba langsung.. Pertama kita buat file data.csv dengan isi sebagai berikut
nama,alamat,jenis kelamin,nilai
Faqih,Bandung,Laki-Laki,100
Ina,Jakarta,Perempuan,88
Fitri,Bandung,Perempuan,99
Dana,Surabaya,Perempuan,80
Abi,Surabaya,Laki-Laki,90
Dika,Jakarta,Laki-Laki,70
Kemudian panggil file tersebut dengan fungsi read_csv() dan lakukan operasi GroupBy()
Misalnya kita ingin mencari rata-rata nilai untuk setiap grup alamat dan jenis kelamin
import pandas as pd df = pd.read_csv('data.csv') alamat = df.groupby('alamat').mean() jenisKelamin = df.groupby('jenis kelamin').mean() print(alamat) print(jenisKelamin)
Hasilnya adalah
Contoh lainnya misal ingin mengetahui total nilai per kelompok alamat dan jenis kelamin kita ganti mean() menjadi sum()
import pandas as pd df = pd.read_csv('data.csv') alamat = df.groupby('alamat').sum() jenisKelamin = df.groupby('jenis kelamin').sum() print(alamat) print(jenisKelamin)
Hasilnya
Ada beberapa fungsi agregasi lainnya yang sering digunakan selain mean() dan sum() seperti terangkum pada tabel dibawah
Fungsi | Deskripsi |
mean | Mencari nilai rata-rata |
sum | Mencari total nilai |
count | Mencari jumlah data |
median | Mencari data nilai tengah |
min | Mencari nilai terkecil |
max | Mencari nilai terbesar |
std | Mencari standar deviasi |
Kombinasi Fungsi Agregasi
Kita bisa mengkombinasikan fungsi agregasi dengan fungsi agg()
Misalnya kita ingin mencari nilai rata-rata dan total nilai dari jenis kelamin
import pandas as pd import numpy as np df = pd.read_csv('data.csv') jenisKelamin = df.groupby('jenis kelamin').agg([np.mean, np.sum])
Hasilnya adalah