Cara menggunakan AGG pada Python

Dalam analisis data ada kalanya kita ingin melakukan agregasi data seperti mencari jumlah data, mencari rata-rata atau total nilai

Table of Contents

  • Kombinasi Fungsi Agregasi
  • Post navigation
  • Penggabungan String menggunakan Group by Function
  • Mengurutkan Nilai dalam urutan menaik
  • Penggunaan agregat dengan groupby
  • Visualisasikan data menggunakan groupby
  • Ubah Nama Kolom dengan grup dengan
  • Ambil Grup berdasarkan kunci atau nilai
  • Tambahkan Nilai ke dalam Daftar grup
  • Penggunaan fungsi Transform dengan groupby

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

Cara menggunakan AGG pada Python

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

Post navigation

Grup panda berdasarkan fungsi digunakan untuk mengelompokkan objek atau kolom DataFrames berdasarkan kondisi atau aturan tertentu. Dengan menggunakan fungsi groupby, pengelolaan dataset menjadi lebih mudah. Namun, semua catatan terkait dapat diatur ke dalam kelompok. Dengan menggunakan pustaka Pandas, Anda dapat mengimplementasikan grup Pandas berdasarkan fungsi untuk mengelompokkan data menurut jenis variabel yang berbeda. Sebagian besar pengembang menggunakan tiga teknik dasar untuk mengelompokkan berdasarkan fungsi. Pertama, splitting dimana data dibagi menjadi beberapa kelompok berdasarkan beberapa kondisi tertentu. Kemudian, terapkan fungsi tertentu ke grup ini. Pada akhirnya, gabungkan output dalam bentuk struktur data.

Pada artikel ini, kita akan membahas penggunaan dasar grup berdasarkan fungsi di python panda. Semua perintah dijalankan pada editor Pycharm.

Mari kita bahas konsep utama grup dengan bantuan data karyawan. Kami telah membuat kerangka data dengan beberapa detail karyawan yang berguna (Nama_Karyawan, Penunjukan, Kota_Karyawan, Usia).

Penggabungan String menggunakan Group by Function

Menggunakan fungsi groupby, Anda dapat menggabungkan string. Catatan yang sama dapat digabungkan dengan ',' dalam satu sel.

Contoh

Pada contoh berikut, kami telah mengurutkan data berdasarkan kolom 'Penunjukan' karyawan dan bergabung dengan Karyawan yang memiliki sebutan yang sama. Fungsi lambda diterapkan pada 'Employees_Name'.

impor panda sebagai pd
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df1=df.groupby("Penamaan")['Nama_Karyawan'].berlaku(lambda Nama_Pegawai: ','.Ikuti(Nama_Karyawan))
mencetak(df1)

Ketika kode di atas dijalankan, output berikut akan ditampilkan:

Mengurutkan Nilai dalam urutan menaik

Gunakan objek groupby ke dalam kerangka data biasa dengan memanggil '.to_frame()' dan kemudian gunakan reset_index() untuk pengindeksan ulang. Urutkan nilai kolom dengan memanggil sort_values().

Contoh

Dalam contoh ini, kami akan mengurutkan usia Karyawan dalam urutan menaik. Menggunakan potongan kode berikut, kami telah mengambil 'Employee_Age' dalam urutan menaik dengan 'Employee_Names'.

impor panda sebagai pd
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df1=df.groupby('Nama_Karyawan')['Usia_Karyawan'].jumlah().untuk membingkai().reset_indeks().sort_values(oleh='Usia_Karyawan')
mencetak(df1)

Penggunaan agregat dengan groupby

Ada sejumlah fungsi atau agregasi yang tersedia yang dapat Anda terapkan pada grup data seperti count(), sum(), mean(), median(), mode(), std(), min(), max().

Contoh

Dalam contoh ini, kami telah menggunakan fungsi 'count()' dengan groupby untuk menghitung Karyawan yang termasuk dalam 'Employee_city' yang sama.

impor panda sebagai pd
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df1=df.groupby('Karyawan_kota').menghitung()
mencetak(df1)

Seperti yang dapat Anda lihat pada output berikut, di bawah kolom Designation, Employee_Names, dan Employee_Age, hitung angka yang berasal dari kota yang sama:

Visualisasikan data menggunakan groupby

Dengan menggunakan 'import matplotlib.pyplot', Anda dapat memvisualisasikan data Anda ke dalam grafik.

Contoh

Di sini, contoh berikut memvisualisasikan 'Employee_Age' dengan 'Employee_Nmaes' dari DataFrame yang diberikan dengan menggunakan pernyataan groupby.

impor panda sebagai pd
impor matplotlib.plot gambarsebagai plt
kerangka data = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
plt.klf()
kerangka data.groupby('Nama_Karyawan').jumlah().merencanakan(baik='batang')
plt.menunjukkan()

Contoh

Untuk memplot grafik bertumpuk menggunakan groupby, putar 'stacked=true' dan gunakan kode berikut:

impor panda sebagai pd
impor matplotlib.plot gambarsebagai plt
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df.groupby(['Karyawan_kota','Nama_Karyawan']).ukuran().membongkar().merencanakan(baik='batang',ditumpuk=benar, ukuran huruf='6')
plt.menunjukkan()

Pada grafik di bawah ini, jumlah karyawan ditumpuk yang berasal dari kota yang sama.

Ubah Nama Kolom dengan grup dengan

Anda juga dapat mengubah nama kolom teragregasi dengan beberapa nama baru yang dimodifikasi sebagai berikut:

impor panda sebagai pd
impor matplotlib.plot gambarsebagai plt
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df1 = df.groupby('Nama_Karyawan')['Penamaan'].jumlah().reset_indeks(nama='Penunjukan_Karyawan')
mencetak(df1)

Dalam contoh di atas, nama 'Penunjukan' diubah menjadi 'Penunjukan_Karyawan'.

Ambil Grup berdasarkan kunci atau nilai

Menggunakan pernyataan groupby, Anda dapat mengambil catatan atau nilai serupa dari kerangka data.

Contoh

Dalam contoh yang diberikan di bawah ini, kami memiliki data grup berdasarkan 'Penunjukan'. Kemudian, grup 'Staf' diambil dengan menggunakan .getgroup('Staff').

impor panda sebagai pd
impor matplotlib.plot gambarsebagai plt
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
ekstrak_nilai = df.groupby('Penamaan')
mencetak(ekstrak_nilai.get_group('Staf'))

Hasil berikut ditampilkan di jendela output:

Tambahkan Nilai ke dalam Daftar grup

Data serupa dapat ditampilkan dalam bentuk daftar dengan menggunakan pernyataan groupby. Pertama, mengelompokkan data berdasarkan suatu kondisi. Kemudian, dengan menerapkan fungsi tersebut, Anda dapat dengan mudah memasukkan grup ini ke dalam daftar.

Contoh

Dalam contoh ini, kami telah memasukkan catatan serupa ke dalam daftar grup. Semua karyawan dibagi ke dalam grup berdasarkan 'Employee_city', dan kemudian dengan menerapkan fungsi 'Lambda', grup ini diambil dalam bentuk daftar.

impor panda sebagai pd
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df1=df.groupby('Karyawan_kota')['Nama_Karyawan'].berlaku(lambda group_series: group_series.daftar()).reset_indeks()
mencetak(df1)

Penggunaan fungsi Transform dengan groupby

Karyawan dikelompokkan menurut usia mereka, nilai-nilai ini ditambahkan bersama-sama, dan dengan menggunakan fungsi 'mengubah' kolom baru ditambahkan dalam tabel:

impor panda sebagai pd
df = hal.Bingkai Data({
'Nama_Karyawan':['Sam','Ali','Umar','Raee','Mahwis','Hania','mirha','Maria','Hamza'],
'Penamaan':['Pengelola','Staf','petugas TI','petugas TI','SDM','Staf','SDM','Staf','Pemimpin Tim'],
'Karyawan_kota':['Karachi','Karachi','Islamabad','Islamabad','Quetta','Lahore','Faislabad','Lahore','Islamabad'],
'Usia_Karyawan':[60,23,25,32,43,26,30,23,35]
})
df['jumlah']=df.groupby(['Nama_Karyawan'])['Usia_Karyawan'].mengubah('jumlah')
mencetak(df)

Kesimpulan

Kami telah menjelajahi berbagai penggunaan pernyataan groupby dalam artikel ini. Kami telah menunjukkan bagaimana Anda dapat membagi data ke dalam grup, dan dengan menerapkan agregasi atau fungsi yang berbeda, Anda dapat dengan mudah mengambil grup ini.