Pandas: cara menghitung peringkat pada objek groupby


Anda dapat menggunakan sintaks berikut untuk menghitung urutan nilai dalam objek GroupBy di pandas:

 df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: menghitung rangking pada objek GroupBy

Misalkan kita memiliki panda DataFrame berikut yang menunjukkan poin yang dicetak oleh pemain bola basket dari tim berbeda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})

#view DataFrame
print (df)

  team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26

Kita dapat menggunakan sintaks berikut untuk menghitung peringkat nilai poin setiap tim:

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank ()

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 1.5
1 to 10 1.5
2 to 12 3.0
3 to 15 4.0
4 B 19 1.0
5 B 23 2.0
6 C 20 1.5
7 C 20 1.5
8 C 26 3.0

Secara default, fungsi Rank() menetapkan nilai peringkat dalam urutan menaik dan menggunakan peringkat rata-rata jika terjadi seri.

Namun, kita dapat menggunakan metode dan argumen bottom-up untuk mengurutkan nilai dengan cara yang berbeda:

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank (' dense ', ascending= False )

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 3.0
1 to 10 3.0
2 to 12 2.0
3 to 15 1.0
4 B 19 2.0
5 B 23 1.0
6 C 20 2.0
7 C 20 2.0
8 C 26 1.0

Metode ini memberikan nilai 1 pada nilai terbesar pada setiap kelompok.

Anda dapat menemukan daftar lengkap metode pemeringkatan yang dapat Anda gunakan dengan fungsi Rank() di sini .

Catatan : Anda dapat menemukan dokumentasi lengkap operasi GroupBy di pandas di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Pandas: cara menghitung jumlah kumulatif per kelompok
Pandas: cara menghitung nilai unik berdasarkan kelompok
Pandas: cara menghitung korelasi berdasarkan kelompok

Tambahkan komentar

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