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

Tambahkan komentar

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