Cara menghitung peringkat persentil di pandas (dengan contoh)
Peringkat persentil suatu nilai memberi tahu kita persentase nilai dalam kumpulan data yang peringkatnya sama atau lebih rendah dari nilai tertentu.
Anda dapat menggunakan metode berikut untuk menghitung peringkat persentil di panda:
Metode 1: Hitung peringkat persentil untuk kolom
df[' percent_rank '] = df[' some_column ']. rank (pct= True )
Metode 2: Hitung peringkat persentil berdasarkan kelompok
df[' percent_rank '] = df. groupby (' group_var ')[' value_var ']. transform (' rank ', pct= True )
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B', 'B', 'B'],
' points ': [2, 5, 5, 7, 9, 13, 15, 17, 22, 24, 30, 31, 38, 39]})
#view DataFrame
print (df)
team points
0 to 2
1 to 5
2 to 5
3 to 7
4 to 9
5 to 13
6 to 15
7 B 17
8 B 22
9 B 24
10 B 30
11 B 31
12 B 38
13 B 39
Contoh 1: Hitung peringkat persentil untuk kolom
Kode berikut menunjukkan cara menghitung peringkat persentil setiap nilai pada kolom poin:
#add new column that shows percentile rank of points
df[' percent_rank '] = df[' points ']. rank (pct= True )
#view updated DataFrame
print (df)
team points percent_rank
0 A 2 0.071429
1 to 5 0.178571
2 to 5 0.178571
3 to 7 0.285714
4 to 9 0.357143
5 A 13 0.428571
6 A 15 0.500000
7 B 17 0.571429
8 B 22 0.642857
9 B 24 0.714286
10 B 30 0.785714
11 B 31 0.857143
12 B 38 0.928571
13 B 39 1.000000
Berikut cara mengartikan nilai pada kolom persen_rank :
- 7,14% nilai poin sama dengan atau kurang dari 2.
- 17,86% nilai poin sama dengan atau kurang dari 5.
- 28,57% nilai poin sama dengan atau kurang dari 7.
Dan seterusnya.
Contoh 2: Hitung peringkat persentil berdasarkan kelompok
Kode berikut menunjukkan cara menghitung peringkat persentil setiap nilai pada kolom poin yang dikelompokkan berdasarkan tim:
#add new column that shows percentile rank of points, grouped by team
df[' percent_rank '] = df. groupby (' team ')[' points ']. transform (' rank ', pct= True )
#view updated DataFrame
print (df)
team points percent_rank
0 A 2 0.142857
1 A 5 0.357143
2 A 5 0.357143
3 to 7 0.571429
4 to 9 0.714286
5 A 13 0.857143
6 to 15 1.000000
7 B 17 0.142857
8 B 22 0.285714
9 B 24 0.428571
10 B 30 0.571429
11 B 31 0.714286
12 B 38 0.857143
13 B 39 1.000000
Berikut cara mengartikan nilai pada kolom persen_rank :
- 14,3% nilai poin Tim A sama dengan atau kurang dari 2.
- 35,7% nilai poin Tim A sama dengan atau kurang dari 5.
- 57,1% nilai poin Tim A sama dengan atau kurang dari 7.
Dan seterusnya.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Cara menghitung persen perubahan pada panda
Cara menghitung persentase kumulatif di panda
Cara menghitung persentase total dalam suatu kelompok di panda