apply() di Pandas

Menjalankan fungsi buatan sendiri ke setiap nilai (atau setiap baris) DataFrame.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Kalau aturannya terlalu rumit untuk satu rumus, tulis aturannya sebagai fungsi, lalu apply() akan menjalankannya ke setiap baris. Mirip IF bertingkat di Excel, tapi lebih mudah dibaca.

Sintaks

df['kolom'].apply(fungsi)
df.apply(fungsi, axis=1)
BagianKeterangan
fungsiFungsi Python atau lambda yang menerima satu nilai (atau satu baris kalau axis=1).
axis=1Menjalankan fungsi per baris, bisa membaca beberapa kolom sekaligus.

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 apply()

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
apply.py
def golongan(gaji):
    if gaji >= 10000000:
        return 'Senior'
    if gaji >= 8000000:
        return 'Madya'
    return 'Junior'

karyawan['golongan'] = karyawan['gaji'].apply(golongan)
karyawan[['nama', 'gaji', 'golongan']]

Hasil 8 baris × 3 kolom

namagajigolongan
Andi Pratama 12500000 Senior
Bunga Lestari 9800000 Madya
Candra Wijaya 8200000 Madya
Dewi Anggraini 7500000 Junior
Eko Saputra 6900000 Junior
Fajar Nugroho 11000000 Senior
Gita Permata 8200000 Madya
Hendra Gunawan 5500000 Junior

Setiap gaji diberi golongan sesuai aturan di fungsi: 10 juta ke atas Senior, 8 juta ke atas Madya, sisanya Junior.

Cara kerjanya, langkah demi langkah

  1. Fungsi golongan menerima satu angka gaji dan mengembalikan teks.
  2. apply(golongan) menjalankan fungsi itu ke setiap nilai kolom gaji.
  3. Hasilnya disimpan ke kolom baru golongan.

Dipakai untuk apa di kantor?

  • Klasifikasi dengan aturan bertingkat.
  • Membersihkan teks dengan logika khusus.

Kesalahan yang sering terjadi

  • Lupa axis=1 saat fungsinya membaca beberapa kolom dari satu baris.
  • Fungsi tidak mengembalikan nilai (lupa return), sehingga hasilnya None.
Progres bab Mengolah Kolom 0/5 dipelajari
Lanjut: .str

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