Cara menghitung kuantil berdasarkan kelompok di pandas


Anda dapat menggunakan sintaks dasar berikut untuk menghitung kuantil berdasarkan kelompok di Pandas:

 df. groupby (' grouping_variable '). quantile ( .5 )

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: menghitung kuantil berdasarkan kelompok

Misalkan kita memiliki panda DataFrame berikut:

 import pandas as pd

#createDataFrame 
df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
                   ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#view first five rows
df. head ()

team score
0 1 3
1 1 4
2 1 4
3 1 5
4 1 5 

Kode berikut menunjukkan cara menghitung persentil ke-90 dari nilai pada kolom “poin”, yang dikelompokkan berdasarkan kolom “tim”:

 df. groupby (' team '). quantile ( .90 )

	score
team	
1 6.5
2 4.0

Berikut cara menafsirkan hasilnya:

  • Persentil ke-90 “poin” untuk Tim 1 adalah 6,5 .
  • Persentil “poin” ke-90 untuk Tim 2 adalah 4,0 .

Contoh 2: Hitung beberapa kuantil per grup

Kode berikut menunjukkan cara menghitung beberapa kuantil sekaligus per grup:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
                   ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#create functions to calculate 1st and 3rd quartiles
def q1(x):
    return x. quantile ( 0.25 )

def q3(x):
    return x. quantile ( 0.75 )

#calculate 1st and 3rd quartiles by group
vals = {' score ': [q1, q3]}

df. groupby (' team '). agg (vals)

	score
        q1 q3
team		
1 4.0 5.0
2 2.0 3.0

Berikut cara menafsirkan hasilnya:

  • Kuartil pertama dan ketiga skor Tim 1 masing-masing adalah 4,0 dan 5,0 .
  • Skor kuartil pertama dan ketiga Tim 2 masing-masing adalah 2,0 dan 3,0 .

Sumber daya tambahan

Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di panda:

Bagaimana menemukan nilai maksimal per grup di Pandas
Cara menghitung penampakan kelompok pada panda
Cara menghitung rata-rata kolom di Pandas

Tambahkan komentar

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