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