rank() di Pandas

Memberi nomor peringkat berdasarkan nilai, bisa per kelompok.

Diperbarui · Tim Zennit.id

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')
BagianKeterangan
ascendingFalse supaya nilai terbesar dapat peringkat 1.
methodCara 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

idnamadept_idkotagajitgl_masukatasan_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
rank.py
karyawan['peringkat'] = karyawan['gaji'].rank(ascending=False, method='min').astype(int)
karyawan.sort_values('peringkat')[['nama', 'gaji', 'peringkat']]

Hasil 8 baris × 3 kolom

namagajiperingkat
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

  1. Gaji diberi peringkat dari yang terbesar.
  2. method='min' membuat nilai sama berbagi peringkat terkecil.
  3. 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 method yang sesuai.
Progres bab Analisis Lanjutan 0/3 dipelajari
Lanjut: cumsum()

Langkah berikutnya

Dari paham fungsi, ke siap kerja.

Belajar Python bareng mentor

Tahu fungsinya itu awal. Mengolah data kantor sampai jadi insight, itu skill.

Private Class Python & SQL untuk Data: dari Pandas dasar sampai membersihkan, merekap, dan memvisualisasikan data studi kasus kerja, dengan jadwal yang menyesuaikan kamu.

Lihat Private Class