Grup Panda berdasarkan Agregat

Grup Panda Berdasarkan Agregat



Teknik groupby sangat penting karena seberapa baik agregat data dalam hal kinerja dan ukuran kode. Istilah 'groupby' biasanya menggambarkan prosedur termasuk langkah-langkah berikut:

  • Pemisahan : Dengan menerapkan kondisi tertentu pada kumpulan data, kita dapat membagi data menjadi beberapa kelompok.
  • melamar : Sebuah proses di mana kami secara individual menerapkan metode ke setiap grup.
  • Menggabungkan : Prosedur untuk menggabungkan berbagai kumpulan data untuk membentuk struktur data setelah menggunakan metode groupby().

Dalam proses agregasi, statistik ringkasan untuk setiap kelompok dihitung. Untuk setiap grup, metode agregat mengembalikan nilai agregat (nilai tunggal). Kita dapat melakukan beberapa operasi agregasi pada data yang dikelompokkan setelah membagi data menjadi beberapa kelompok menggunakan fungsi groupby.







Mengapa Pandas Menyediakan Berbagai Metode Agregasi Data?

Pandas menawarkan berbagai fitur dan fungsi untuk membantu dalam analisis dan agregasi data. Penggunaan metode pivot(), groupby(), dan pivot_table(), misalnya, masing-masing menawarkan perspektif yang berbeda tentang bagaimana data akan dikumpulkan. Mereka menyediakan pendekatan praktis untuk melaksanakan berbagai tugas daripada hanya dikemas ulang.



Cara Menggunakan Fungsi .agg() di Panda

Rata-rata sederhana atau jumlah nilai adalah fungsi agregasi yang paling sering digunakan. Anda dapat menggunakan kolom kerangka data atau beberapa kolom untuk memanggil fungsi agregat. Anda akan melihat banyak cara untuk menggabungkan data menggunakan metode Pandas groupby. Untuk menunjukkan betapa mudahnya prosedur ini, mari kita lihat beberapa contoh yang diberikan di bawah ini. Operasi matematika dasar seperti penjumlahan, minimum, maksimum, deviasi absolut rata-rata, deviasi standar, rata-rata, median, varians, dan produk adalah salah satu fungsi agregasi bawaan yang paling sering digunakan. Untuk meringkas data, kita dapat menggabungkan fungsi groupby dan agg().



Contoh #01: Menentukan Jumlah Kolom dengan Mengelompokkan Data Menggunakan Fungsi groupby.agg()

Pertama-tama kita akan membuat kerangka data dengan menggunakan fungsi pd.DataFrame() sehingga kita dapat mengelompokkan data dari kolom atau kolom kerangka data dan kemudian menentukan nilai rata-ratanya. Kita harus mengimpor modul pandas dan numpy library sebelum kita membuat kerangka data.





Seperti yang Anda lihat, kami menggunakan kamus pandas untuk membuat kerangka data kami. Kerangka data df kami memiliki empat kolom: 'pasien' 'kelompok', 'usia', dan 'botol darah'. Nilai data ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') ditampung oleh kolom “patient” sedangkan nilai data ('A ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) dan ( 2, 3, 1, 1, 2, 3, 2, 1) masing-masing terdapat pada kolom “kelompok”, “usia” dan “botol darah”. Misalkan kita harus menentukan jumlah nilai di kolom 'blood_bottles' dengan mengelompokkan nilai di kolom 'group'.



Untuk data grup 'A', jumlah nilai 'blood_bottles' adalah 7. Untuk nilai grup 'B' dan 'C', jumlah nilai 'blood_bottles' masing-masing adalah 2 dan 6. Kami juga dapat mengelompokkan beberapa kolom untuk menentukan jumlah untuk setiap grup.

Seperti yang dapat diamati, kami telah melewati daftar label kolom, yaitu, ['patient', 'group'] di dalam fungsi groupby() untuk membuat grup kategori di setiap kolom yang ditentukan. Untuk setiap grup kolom yang ditentukan, kami telah menentukan jumlah nilai dalam 'blood_bottles'. Misalnya, 'Ali' ada di kolom 'kelompok' nilai A dan C. Di grup A, jumlah nilai 'blood_bottles' untuk Ali adalah 2, dan 5 di grup 'C'.

Contoh # 02: Menerapkan Beberapa Fungsi pada Satu Kolom Dataframe Menggunakan Fungsi groupby.agg()

Beberapa agregasi dapat diterapkan dengan metode “groupby()” menggunakan fungsi pandas agg(). Daftar yang dapat dipanggil dapat diteruskan ke metode tersebut. Mari kita lihat bagaimana kita dapat menggabungkan data kita menggunakan metode built-in library numpy. Berbeda dengan contoh sebelumnya, kita akan menerapkan beberapa fungsi ke satu kolom kerangka data. Fungsi pd.DataFrame() akan digunakan untuk membuat kerangka data untuk ini dengan setidaknya satu kolom yang berisi nilai numerik.


Dataframe yang dibutuhkan telah dibuat memiliki satu kolom numerik yaitu 'tanda' dengan nilai 41, 40, 35, 39, 49, 31, 34, dan 42. Ada 3 kolom lagi 'mahasiswa', 'mata pelajaran', dan 'gelar' dalam kerangka data kami yang dapat dibagi menjadi beberapa grup dengan menggunakan fungsi groupby(). Nilai pada kolom 'siswa' dan 'mata pelajaran' adalah ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') dan ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Sedangkan kolom derajat berisi nilai data berupa string, yaitu ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Misalkan kita harus mengelompokkan data kolom 'subyek' dan menentukan rata-rata dan jumlah 'tanda' kolom untuk setiap data yang dikelompokkan.

Kami telah menentukan nama kolom 'subjek' sebagai string di dalam fungsi groupby() untuk mengubah data menjadi grup kategori. Untuk kolom tanda, kami telah menggunakan metode agg(), dan di dalam fungsi agg() kami telah menetapkan fungsi numpy np.sum dan np.mean untuk menemukan jumlah dan rata-rata tanda dari setiap kelompok data dalam subjek kolom. Jumlah dan nilai rata-rata untuk nilai kelompok 'AI' masing-masing adalah 91 dan 45,5. Jumlah nilai untuk nilai 'C++' adalah 75, dan nilai rata-ratanya adalah 37,5. Untuk grup JAVA, jumlah tanda adalah 71 dan nilai rata-rata adalah 35,5, sedangkan jumlah dan nilai rata-rata untuk Python masing-masing adalah 74 dan 37.

Contoh # 03: Menerapkan Beberapa Fungsi pada Beberapa Kolom Dataframe Menggunakan Fungsi groupby.agg()

Daripada menerapkan fungsi yang berbeda ke kolom kerangka data tunggal, kita dapat menerapkan beberapa fungsi ke kolom numerik yang berbeda. Kita dapat menggunakan kamus dalam fungsi agg() sebagai input untuk menerapkan metode agregasi tertentu ke kolom kerangka data yang berbeda. Mari impor perpustakaan panda dan numpy sebelum membuat kerangka data dengan beberapa kolom numerik.

Ada empat kolom dalam kerangka data yang baru dibuat dengan nama 'pemain', 'skor_terkecil', 'skor_tertinggi', dan 'lokasi'. Di kolom 'player', kami telah menyimpan nama beberapa pemain sebagai nilai data string ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), di kolom 'least_score' ada skor terendah dari pemain untuk beberapa pertandingan (12, 34, 2, 21, 9, 1, 0, 34), sedangkan di kolom 'highest_score' kami memiliki skor tertinggi dari pemain (12, 34, 2, 21, 9, 1, 0, 34) dan pada kolom 'lokasi' terdapat nama-nama tempat para pemain memainkan pertandingan mereka ('Prancis', 'Inggris', 'Dubai', ' Dubai', 'Inggris', 'Prancis', 'Dubai', 'Prancis').

Misalkan setelah mengelompokkan data ke dalam kolom 'pemain', kita harus mencari rata-rata untuk nilai kolom 'skor_terkecil' dan jumlah nilai data 'skor_tertinggi' untuk setiap grup.

Di dalam fungsi agg() , kami melewati kamus python {'highest_score' : 'sum', 'least_score' : 'mean'} untuk menemukan jumlah dan nilai rata-rata untuk kolom tertentu terhadap setiap grup. Dapat dilihat bahwa nilai yang dikelompokkan Alex memiliki jumlah nilai 'highest_score' 132 dan rata-rata nilai 'least_score' 17,5. Untuk 'Fin' jumlah nilainya adalah 199 dan rata-ratanya adalah 18.3333333 di kolom 'highest_score' dan 'least_score' masing-masing. Nilai grup Leo memiliki nilai penjumlahan 180 di 'skor_tertinggi' dan nilai rata-rata 7,666667 di 'skor_terkecil'.

Kesimpulan

Dalam tutorial ini, kita telah membahas fungsi groupby() dan agregasi di pandas. Kami juga telah membahas cara menggunakan fungsi groupby.agg(). Kami menerapkan tiga contoh dalam artikel ini untuk mengajari Anda cara menggunakan fungsi agregasi tunggal pada kolom kerangka data dengan mengelompokkan data satu dan beberapa kolom, cara menerapkan beberapa fungsi agregasi pada satu kolom kerangka data, dan cara menerapkan beberapa fungsi agregasi pada beberapa kolom kerangka data menggunakan fungsi groupby.agg().