Pandas: cara menggunakan group by dengan kondisi where


Cara termudah untuk menggunakan group by dengan kondisi Where di pandas adalah dengan menggunakan fungsi query() :

 df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

Contoh khusus ini menghitung nilai rata-rata points , dikelompokkan berdasarkan position , dengan team sama dengan “A” di beberapa panda DataFrame.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Cara menggunakan kondisi Group By dengan Where di Pandas

Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang berbagai pemain bola basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [22, 14, 15, 10, 8, 29, 33, 18]})

#view DataFrame
print (df)

  team position points
0 AG 22
1 AG 14
2 AF15
3 AF 10
4 AF 8
5 BG 29
6 BG 33
7 BF 18

Kita dapat menggunakan kode berikut untuk menghitung nilai rata-rata poin , dikelompokkan berdasarkan posisi , dimana tim sama dengan “A”:

 #calculate mean value of points, grouped by position, where team == 'A'
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

        position points
0 F 11.0
1G 18.0

Dari hasilnya kita dapat melihat:

  • Nilai rata-rata poin pemain di posisi “F” di tim A adalah 11 .
  • Nilai rata-rata poin pemain di posisi “G” Tim A adalah 18 .

Perhatikan bahwa kita juga dapat menggunakan operator & dalam fungsi query() untuk menemukan baris yang beberapa kondisinya terpenuhi.

Misalnya, kode berikut menunjukkan cara menghitung nilai rata-rata poin , dikelompokkan berdasarkan posisi , di mana tim sama dengan “A” dan posisi sama dengan “G”:

 #calculate mean value of points by position where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index ()

	position points
0G 18.0

Dari hasil tersebut terlihat bahwa rata-rata nilai poin pemain posisi “G” di tim A adalah 18 .

Karena kami menentukan dua kondisi dalam fungsi query() , hanya baris yang memenuhi kedua kondisi yang digunakan.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara melakukan penjumlahan GroupBy di Pandas
Cara menggunakan Groupby dan Plot di Pandas
Cara menghitung nilai unik menggunakan GroupBy di Pandas

Tambahkan komentar

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