Cara menghitung penampakan kelompok pada panda
Seringkali Anda mungkin tertarik untuk menghitung jumlah observasi per grup di pandas DataFrame.
Untungnya, hal ini mudah dilakukan menggunakan fungsi groupby() dan size() dengan sintaks berikut:
df. groupby (' column_name '). size ()
Tutorial ini menjelaskan beberapa contoh penggunaan praktis fungsi ini menggunakan bingkai data berikut:
import numpy as np import pandas as pd #create pandas DataFrame df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'], 'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'], 'rebounds': [11, 8, 7, 6, 6, 5, 12]}) #display DataFrame print (df) team division rebounds 0 AE 11 1 AW 8 2 BE 7 3 BE 6 4 BW 6 5 CW 5 6 CE 12
Contoh 1: menghitung berdasarkan variabel
Kode berikut menunjukkan cara menghitung jumlah total observasi per tim:
#count total observations by variable 'team' df. groupby (' team '). size () team At 2 B 3 C 2 dtype: int64
Dari hasilnya kita dapat melihat bahwa:
- Tim A mempunyai 2 observasi
- Tim B mempunyai 3 observasi
- Tim C mempunyai 2 observasi
Perhatikan bahwa kode sebelumnya menghasilkan rangkaian. Dalam kebanyakan kasus, kita ingin bekerja dengan DataFrame, jadi kita bisa menggunakan fungsi reset_index() untuk menghasilkan DataFrame:
df. groupby (' team '). size (). reset_index (name=' obs ') team obs 0 to 2 1 B 3 2 C 2
Contoh 2: menghitung dan mengurutkan berdasarkan variabel
Kita juga bisa menggunakan fungsi sort_values() untuk mengurutkan jumlah grup.
Kita dapat menentukan ascending=False untuk mengurutkan jumlah grup dari yang terbesar ke yang terkecil atau ascending=True untuk mengurutkan dari yang terkecil ke yang terbesar:
df. groupby (' team '). size (). reset_index (name=' obs '). sort_values ([' obs '], ascending= True ) team obs 0 to 2 2 C 2 1 B 3
Contoh 3: Menghitung dengan beberapa variabel
Kita juga dapat menghitung jumlah observasi yang dikelompokkan berdasarkan beberapa variabel dalam pandas DataFrame:
#count observations grouped by team and division df. groupby ([' team ',' division ']). size (). reset_index (name=' obs ') team division obs 0 A E 1 1 A W 1 2 B E 2 3 B W 1 4 C E 1 5 C W 1
Dari hasilnya kita dapat melihat bahwa:
- 1 observasi menjadi milik tim A dan divisi E
- 1 observasi menjadi milik tim A dan divisi W
- 2 observasi milik tim B dan divisi E
- 1 observasi menjadi milik tim B dan divisi W
- 1 observasi menjadi milik tim C dan divisi E
- 1 observasi menjadi milik tim C dan divisi W
Sumber daya tambahan
Cara menghitung jumlah kolom di Pandas
Cara menghitung rata-rata kolom di Pandas
Bagaimana menemukan nilai maksimum kolom di Pandas