Python

Python Pandas : Pengenalan GroupBy

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

FungsiDeskripsi
meanMencari nilai rata-rata
sumMencari total nilai
countMencari jumlah data
medianMencari data nilai tengah
minMencari nilai terkecil
maxMencari nilai terbesar
stdMencari 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

Leave a Reply

Your email address will not be published. Required fields are marked *