Penjelasan sederhana
Seperti fungsi RANK di Excel: siapa yang nomor 1, 2, 3. Pilihan method menentukan apa yang terjadi kalau ada nilai yang sama.
Sintaks
df['kolom'].rank(ascending=True, method='average')
| Bagian | Keterangan |
|---|---|
ascending | False supaya nilai terbesar dapat peringkat 1. |
method | Cara menangani nilai sama: 'min' (1, 2, 2, 4), 'dense' (1, 2, 2, 3), 'first' (urutan muncul). |
df adalah nama DataFrame (tabel) yang sedang diolah. Contoh di bawah memakai import pandas as pd dan import numpy as np, yang sudah disiapkan otomatis.
Contoh rank()
Data contoh: karyawan (sudah tersedia sebagai DataFrame)
DataFrame karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NaN |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NaN |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NaN |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NaN | Medan | 5500000 | 2024-04-02 | NaN |
karyawan['peringkat'] = karyawan['gaji'].rank(ascending=False, method='min').astype(int)
karyawan.sort_values('peringkat')[['nama', 'gaji', 'peringkat']]
Hasil 8 baris × 3 kolom
| nama | gaji | peringkat | |
|---|---|---|---|
| 0 | Andi Pratama | 12500000 | 1 |
| 5 | Fajar Nugroho | 11000000 | 2 |
| 1 | Bunga Lestari | 9800000 | 3 |
| 2 | Candra Wijaya | 8200000 | 4 |
| 6 | Gita Permata | 8200000 | 4 |
| 3 | Dewi Anggraini | 7500000 | 6 |
| 4 | Eko Saputra | 6900000 | 7 |
| 7 | Hendra Gunawan | 5500000 | 8 |
Kolom abu-abu adalah index, yaitu nomor baris asli di tabel. Nomornya tidak urut karena ada baris yang disaring atau diurutkan. Apa itu index?
Andi bergaji tertinggi jadi peringkat 1. Candra dan Gita bergaji sama (8,2 juta), jadi sama-sama peringkat 4, dan peringkat berikutnya langsung 6.
Cara kerjanya, langkah demi langkah
- Gaji diberi peringkat dari yang terbesar.
method='min'membuat nilai sama berbagi peringkat terkecil.- Hasil diubah ke bilangan bulat dan tabel diurutkan berdasarkan peringkat.
Dipakai untuk apa di kantor?
- Leaderboard sales, ranking produk terlaris, atau top N per cabang.
- Menentukan persentil pelanggan.
Kesalahan yang sering terjadi
- Lupa
ascending=False, sehingga nilai terkecil yang jadi juara. - Hasil bawaan berupa desimal (4.5) kalau ada nilai sama; pilih
methodyang sesuai.
cumsum()