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