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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *