Kumpulan Panda mengikut Agregat

Kumpulan Panda Mengikut Agregat



Teknik kumpulan mengikut adalah penting kerana sejauh mana ia mengagregatkan data dari segi prestasi dan saiz kod. Istilah 'groupby' biasanya menerangkan prosedur termasuk langkah-langkah berikut:

  • Perpecahan : Dengan menggunakan syarat tertentu pada set data, kami boleh membahagikan data kepada kumpulan.
  • Memohon : Proses di mana kita menggunakan kaedah secara individu untuk setiap kumpulan.
  • Menggabungkan : Prosedur untuk menggabungkan pelbagai set data untuk membentuk struktur data selepas menggunakan kaedah groupby().

Dalam proses pengagregatan, statistik ringkasan untuk setiap kumpulan dikira. Bagi setiap kumpulan, kaedah agregat mengembalikan nilai agregat (nilai tunggal). Kita boleh melakukan beberapa operasi pengagregatan pada data berkumpulan selepas membahagikan data kepada kumpulan menggunakan fungsi kumpulan mengikut.







Mengapa Panda Menyediakan Pelbagai Kaedah Pengagregatan Data?

Panda menawarkan pelbagai ciri dan fungsi untuk membantu dalam analisis dan pengagregatan data. Penggunaan kaedah pivot(), groupby(), dan pivot_table(), sebagai contoh, setiap satu menawarkan perspektif berbeza tentang cara data akan diagregatkan. Mereka menyediakan pendekatan praktikal untuk menjalankan pelbagai tugas dan bukannya hanya dibungkus semula.



Cara Menggunakan Fungsi .agg() dalam Panda

Purata mudah atau jumlah nilai ialah fungsi pengagregatan yang paling kerap digunakan. Anda boleh menggunakan lajur bingkai data atau berbilang lajur untuk memanggil fungsi agregat. Anda akan melihat banyak cara untuk mengagregat data menggunakan kaedah kumpulan Pandas. Untuk menunjukkan betapa mudahnya prosedur itu, mari lihat beberapa contoh yang diberikan di bawah. Operasi matematik asas seperti jumlah, minimum, maksimum, min sisihan mutlak, sisihan piawai, min, median, varians dan hasil adalah antara fungsi pengagregatan terbina dalam yang paling kerap digunakan. Untuk meringkaskan data, kita boleh menggabungkan groupby dan fungsi agg().



Contoh # 01: Tentukan Jumlah Lajur dengan Menghimpunkan Data Menggunakan Fungsi groupby.agg()

Mula-mula kami akan membuat bingkai data dengan menggunakan fungsi pd.DataFrame() supaya kami boleh mengumpulkan data daripada lajur atau lajur bingkai data dan kemudian menentukan nilai minnya. Kita mesti mengimport modul panda dan perpustakaan numpy sebelum kita mencipta kerangka data.





Seperti yang anda lihat, kami menggunakan kamus panda untuk mencipta bingkai data kami. Rangka data df kami mempunyai empat lajur: 'pesakit' 'kumpulan', 'umur' dan 'botol darah'. Nilai data ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') terkandung mengikut lajur 'pesakit' manakala 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 terkandung dalam lajur 'kumpulan', 'umur' dan 'botol_darah'. Katakan kita perlu menentukan jumlah nilai dalam lajur 'blood_bottles' dengan mengumpulkan nilai dalam lajur 'kumpulan'.



Untuk data kumpulan 'A', jumlah nilai 'botol_darah' ialah 7. Untuk nilai kumpulan 'B' dan 'C', jumlah nilai 'botol_darah' ialah 2 dan 6, masing-masing. Kami juga boleh mengumpulkan berbilang lajur untuk menentukan jumlah bagi setiap kumpulan.

Seperti yang boleh diperhatikan, kami telah melepasi senarai label lajur, iaitu, ['pesakit', 'kumpulan'] di dalam fungsi groupby() untuk mencipta kumpulan kategori dalam setiap lajur yang ditentukan. Untuk setiap kumpulan lajur yang ditentukan, kami telah menentukan jumlah nilai dalam 'botol_darah'. Sebagai contoh, 'Ali' berada dalam nilai lajur 'kumpulan' A dan C. Dalam kumpulan A, jumlah nilai 'botol_darah' untuk Ali ialah 2, dan 5 dalam kumpulan 'C'.

Contoh # 02: Menggunakan Berbilang Fungsi pada Lajur Tunggal Bingkai Data Menggunakan Fungsi groupby.agg()

Pengagregatan berbilang boleh digunakan dengan kaedah “groupby()” menggunakan fungsi panda agg(). Senarai boleh panggil boleh dihantar ke kaedah. Mari lihat cara kita boleh mengagregatkan data kita menggunakan kaedah terbina dalam perpustakaan numpy. Tidak seperti contoh sebelumnya, kami akan menggunakan berbilang fungsi pada satu lajur bingkai data. Fungsi pd.DataFrame() akan digunakan untuk mencipta kerangka data untuk ini dengan sekurang-kurangnya satu lajur yang mengandungi nilai berangka.


Kerangka data yang diperlukan telah dibuat dengan satu lajur berangka iaitu 'markah' dengan nilai 41, 40, 35, 39, 49, 31, 34, dan 42. Terdapat 3 lagi lajur 'pelajar', 'mata pelajaran' dan 'ijazah' dalam kerangka data kami yang boleh dibahagikan kepada kumpulan dengan menggunakan fungsi groupby(). Nilai dalam lajur 'pelajar' dan 'mata pelajaran' ialah ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') dan ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Manakala darjah lajur mengandungi nilai data sebagai rentetan, iaitu, ('Cik', 'Bs', 'Bs', 'Cik', 'Cik', 'Cik', 'Bs', 'Bs'). Katakan kita perlu mengumpulkan data 'subjek' lajur dan menentukan kedua-dua min dan jumlah 'markah' lajur untuk setiap data yang dikumpulkan.

Kami telah menentukan nama lajur 'subjek' sebagai rentetan dalam fungsi groupby() untuk menukar data kepada kumpulan kategori. Untuk lajur markah, kami telah menggunakan kaedah agg() dan di dalam fungsi agg() kami telah menentukan fungsi numpy np.sum dan np.mean untuk mencari jumlah dan purata markah setiap data kumpulan dalam subjek lajur. Jumlah dan nilai min untuk nilai kumpulan 'AI' ialah 91 dan 45.5, masing-masing. Jumlah markah untuk nilai ‘C++’ ialah 75, dan nilai min ialah 37.5. Untuk kumpulan JAVA, jumlah markah ialah 71 dan nilai min ialah 35.5, manakala jumlah dan nilai min untuk Python ialah 74 dan 37, masing-masing.

Contoh # 03: Menggunakan Berbilang Fungsi pada Berbilang Lajur Bingkai Data Menggunakan Fungsi groupby.agg()

Daripada menggunakan fungsi yang berbeza pada lajur bingkai data tunggal, kami boleh menggunakan berbilang fungsi pada lajur angka yang berbeza. Kita boleh menggunakan kamus dalam fungsi agg() sebagai input untuk menggunakan kaedah pengagregatan tertentu pada lajur bingkai data yang berbeza. Mari import panda dan perpustakaan numpy sebelum membuat bingkai data dengan berbilang lajur angka.

Terdapat empat lajur dalam bingkai data yang baru dibuat dengan nama 'pemain', 'skor_paling_kecil,' 'skor_tertinggi' dan 'lokasi'. Dalam lajur 'pemain', kami telah menyimpan nama beberapa pemain sebagai nilai data rentetan ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), dalam lajur 'least_score' terdapat markah terendah pemain untuk beberapa perlawanan (12, 34, 2, 21, 9, 1, 0, 34), manakala dalam lajur 'highest_score' kami mempunyai markah tertinggi pemain (12, 34, 2, 21, 9, 1, 0, 34) dan dalam lajur 'lokasi' terdapat nama tempat pemain telah bermain perlawanan mereka ('Perancis', 'England', 'Dubai', ' Dubai', 'England', 'France', 'Dubai', 'France').

Katakan selepas mengumpulkan data ke dalam lajur 'pemain', kita perlu mencari purata untuk nilai lajur 'least_score' dan jumlah untuk nilai data 'hightest_score' untuk setiap kumpulan.

Di dalam fungsi agg(), kami lulus kamus python {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} untuk mencari jumlah dan nilai purata bagi lajur tertentu terhadap setiap kumpulan. Dapat dilihat bahawa nilai terkumpul Alex mempunyai jumlah nilai 'skor_tertinggi' 132 dan purata nilai 'skor_terkecil' 17.5. Untuk 'Fin' jumlah nilai ialah 199 dan purata ialah 18.3333333 dalam lajur 'skor_tertinggi' dan 'skor_paling_kurangnya' masing-masing. Nilai kumpulan Leo mempunyai nilai jumlah 180 dalam 'skor_tertinggi' dan nilai purata 7.666667 dalam 'skor_terkecil'.

Kesimpulan

Dalam tutorial ini, kami telah membincangkan fungsi groupby() dan agregasi dalam panda. Kami juga telah membincangkan cara menggunakan fungsi groupby.agg(). Kami melaksanakan tiga contoh dalam artikel ini untuk mengajar anda cara menggunakan fungsi pengagregatan tunggal pada lajur bingkai data dengan mengumpulkan data lajur tunggal dan berbilang, cara menggunakan berbilang fungsi pengagregatan pada satu lajur bingkai data dan cara menggunakan berbilang fungsi pengagregatan pada berbilang lajur bingkai data menggunakan fungsi groupby.agg().