Pandas map dan applymap: Transformasi Nilai (2026)
Blog/Tips & Trik/Pandas map dan applymap: Transformasi Nilai (2026)

Pandas map dan applymap: Transformasi Nilai (2026)

BimaBima
·1 Agustus 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Di pandas, map dipakai buat Series dan ngubah tiap nilai di satu kolom, sedangkan applymap dipakai buat DataFrame dan ngubah tiap sel satu per satu. map bisa nerima fungsi atau dict, jadi enak buat ganti kode jadi label pakai kamus. Sejak pandas 2.1, applymap diganti nama jadi DataFrame.map, tapi applymap lama masih jalan. Buat logika antar kolom, pakai apply, bukan keduanya.

Di pandas, map ngubah tiap nilai di satu kolom (Series), dan applymap ngubah tiap sel di seluruh DataFrame. Keduanya buat transformasi per elemen, beda dari apply yang bisa lihat satu baris utuh.

Bedanya tipis tapi penting. Salah pilih bikin error atau hasil yang gak sesuai. Aku jelasin kapan pakai yang mana, plus trik map pakai dict yang paling sering kepakai buat ganti kode jadi label.

Satu catatan: sejak pandas versi 2.1, applymap diganti nama jadi DataFrame.map. Nama lama masih jalan tapi udah usang. Aku pakai keduanya di sini biar kamu kenal dua-duanya.

Apa itu map di pandas?

map adalah method Series yang jalanin sebuah fungsi atau kamus ke tiap nilai di satu kolom. Dia balikin Series baru dengan nilai yang udah diubah. map cuma ada di Series, jadi kamu manggilnya di satu kolom, bukan seluruh DataFrame.

Yang bikin map spesial, dia bisa nerima dict langsung, bukan cuma fungsi. Ini praktis buat nerjemahin kode jadi label. Buat transformasi yang butuh lihat beberapa kolom sekaligus, kamu butuh apply, yang aku bahas di artikel pandas apply.

Gimana cara map pakai fungsi dan lambda?

Panggil .map() di kolom, kasih fungsi sebagai argumen. map jalanin fungsi itu ke tiap nilai. Buat operasi singkat, lambda paling praktis. Hasilnya Series baru yang bisa langsung kamu simpan ke kolom.

import pandas as pd

df = pd.DataFrame({'harga': [18000, 15000, 25000]})

# Tambah pajak 11 persen ke tiap harga
df['harga_pajak'] = df['harga'].map(lambda x: x * 1.11)

# Format jadi teks rupiah
df['label'] = df['harga'].map(lambda x: f"Rp {x:,.0f}")

Baris pertama ngaliin tiap harga dengan 1,11. Baris kedua ngubah angka jadi teks berformat. map manggil lambda-nya sekali per nilai, jadi cocok buat transformasi sederhana per elemen.

Gimana cara map pakai dict?

Kasih dict ke map buat nerjemahin nilai berdasarkan kamus. Tiap nilai yang cocok sama kunci dict bakal diganti sama nilainya. Ini cara paling bersih buat ubah kode singkat jadi label lengkap. Nilai yang gak ada di dict bakal jadi NaN.

kode_kota = {'JKT': 'Jakarta', 'BDG': 'Bandung', 'SBY': 'Surabaya'}

df['kota'] = df['kode'].map(kode_kota)

Kolom kode yang isinya "JKT", "BDG" langsung jadi "Jakarta", "Bandung". Kalau ada kode yang gak terdaftar di dict, hasilnya NaN. Buat jaga-jaga, kamu bisa tambahin .fillna('Lainnya') setelahnya.

Apa itu applymap dan kapan dipakai?

applymap (atau DataFrame.map di pandas 2.1 ke atas) jalanin fungsi ke tiap sel di seluruh DataFrame, bukan cuma satu kolom. Pakai ini kalau kamu mau transformasi yang sama ke semua sel sekaligus, misalnya format angka atau bersihin spasi di semua kolom teks.

MethodBerlaku diJalan per
mapSeries (1 kolom)Tiap nilai
applymap / DataFrame.mapSeluruh DataFrameTiap sel
applySeries atau DataFrameBaris atau kolom
# Bulatkan semua angka di DataFrame numerik
df_bulat = df.applymap(lambda x: round(x, 2))

# Versi pandas 2.1 ke atas
df_bulat = df.map(lambda x: round(x, 2))

Karena jalan ke tiap sel, applymap paling pas buat DataFrame yang semua kolomnya bertipe sama. Buat operasi antar kolom, tetap pakai apply.

Contoh kasus: standarisasi data pelanggan toko_berkah

Toko_berkah punya data 3.000 pelanggan dengan kode kota dan status keanggotaan yang masih berupa singkatan. Buat laporan, semua harus jadi label yang kebaca. Aku pakai map dengan dict buat dua kolom ini.

kota_map = {'JKT': 'Jakarta', 'BDG': 'Bandung', 'SBY': 'Surabaya', 'DPK': 'Depok'}
status_map = {'G': 'Gold', 'S': 'Silver', 'B': 'Bronze'}

df['kota'] = df['kode_kota'].map(kota_map)
df['status'] = df['kode_status'].map(status_map)

Setelah dijalanin, ada temuan yang gak kelihatan sebelum di-map: 214 baris (7,1%) punya kode kota yang gak ada di kamus, jadi hasilnya NaN. Ternyata itu kode kota lama sebelum sistem diganti, kayak "JKR" buat Jakarta.

Tanpa map, kode rusak ini nyamar di antara data valid dan gak ketahuan. Setelah ketahuan, tim data benerin kamusnya dan nemuin 4 kode usang yang perlu dimigrasi. Ini yang bikin laporan segmentasi kota jadi akurat.

Buat lanjut ngelompokin per kota setelah standarisasi, kamu bisa pakai groupby. Caranya ada di artikel pandas groupby.

Kesalahan umum

Pakai applymap di satu kolom. applymap buat DataFrame, bukan Series. Buat satu kolom, pakai map. Kalau kamu panggil applymap di Series, hasilnya error.

Lupa nilai gak cocok jadi NaN. Waktu map pakai dict, nilai yang gak ada di kunci bakal hilang jadi NaN. Ini gampang kelewat. Selalu cek jumlah NaN setelah map pakai dict.

Ketuker map sama apply buat operasi antar kolom. map cuma lihat satu nilai, gak bisa akses kolom lain. Kalau butuh gabungin dua kolom, itu kerjaan apply dengan axis=1.

Masih pakai applymap di kode baru. Sejak pandas 2.1, applymap udah usang dan digantikan DataFrame.map. Buat proyek baru, pakai df.map biar gak muncul peringatan usang di masa depan.

FAQ

Apa beda map dan apply di pandas?

map cuma ada di Series dan jalan ke tiap nilai satu kolom, plus bisa nerima dict buat nerjemahin nilai. apply lebih luas, bisa di Series maupun DataFrame, dan di DataFrame bisa jalan per baris (axis=1) sehingga lihat beberapa kolom sekaligus. Pakai map buat transformasi satu kolom yang sederhana, dan apply buat logika yang butuh gabungin beberapa kolom dalam satu perhitungan.

Kenapa hasil map jadi NaN?

Kalau map pakai dict, nilai yang gak ada di kunci kamus otomatis jadi NaN. Contohnya kamu map kode kota tapi ada kode yang belum terdaftar di dict. Cek dengan df['kolom'].isna().sum() buat tahu berapa yang gagal. Buat ngisi yang kosong, tambahin .fillna('nilai_default') setelah map. Ini juga cara bagus buat nemuin kode rusak atau format lama di data kamu.

Apakah applymap masih bisa dipakai?

Masih bisa, tapi udah usang sejak pandas 2.1. Namanya diganti jadi DataFrame.map biar konsisten sama Series.map. applymap lama tetap jalan buat sekarang dan cuma ngeluarin peringatan usang, belum error. Buat kode baru, mendingan langsung pakai df.map. Kalau kamu megang kode lama yang masih pakai applymap, gak perlu buru-buru ganti, tapi sebaiknya dimigrasi pelan-pelan.

Bisa gak map dipakai buat beberapa kolom sekaligus?

map sendiri cuma buat satu kolom karena dia method Series. Buat beberapa kolom dengan transformasi sama, pakai applymap atau DataFrame.map yang jalan ke tiap sel. Kalau tiap kolom butuh mapping berbeda, kamu bisa panggil map beberapa kali, satu per kolom, atau pakai loop kecil. Buat mapping berbeda per kolom, cara paling jelas tetap panggil map terpisah biar gampang dibaca.

Lebih cepat mana, map atau apply?

Buat operasi per elemen di satu kolom, map dan apply kecepatannya mirip karena sama-sama jalan per nilai. Bedanya lebih ke fungsi, bukan performa. Buat operasi yang punya versi vektor, kayak perkalian atau penjumlahan, dua-duanya kalah cepat dari operasi langsung seperti df['a'] * 1.1. Jadi kalau bisa divektor, hindari map maupun apply dan pakai operasi kolom langsung.

Penutup

Ringkasan map dan applymap di pandas:

  • Series.map() buat satu kolom, bisa pakai fungsi atau dict
  • applymap (atau DataFrame.map di pandas 2.1+) buat tiap sel seluruh DataFrame
  • Buat logika antar kolom, pakai apply dengan axis=1, bukan map

Dokumentasi resmi map ada di situs pandas. Buat pahami perbedaannya sama apply lebih dalam, baca artikel pandas apply, atau pelajari konsep vektorisasi biar tahu kapan cukup pakai operasi kolom langsung.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Seaborn Pairplot: Cara Eksplorasi Data Cepat dengan Python (2026)
Tips & Trik
18 November 2026•9 menit baca

Seaborn Pairplot: Cara Eksplorasi Data Cepat dengan Python (2026)

Satu baris kode buat lihat hubungan semua kolom numerik sekaligus. Ini cara pakai seaborn pairplot buat eksplorasi data, lengkap dengan contoh dan cara bacanya.

BimaBima
Seaborn Heatmap: Visualisasi Matriks Korelasi (2026)
Tips & Trik
15 November 2026•10 menit baca

Seaborn Heatmap: Visualisasi Matriks Korelasi (2026)

Seaborn heatmap ngubah matriks korelasi jadi grid warna, jadi kamu bisa langsung lihat variabel mana yang saling terkait. Ini cara bikinnya dari df.corr() sampai atur warna dan angka.

BimaBima
Matplotlib Histogram: Cara Membuat dan Baca Distribusi Data di Python (2026)
Tips & Trik
6 November 2026•9 menit baca

Matplotlib Histogram: Cara Membuat dan Baca Distribusi Data di Python (2026)

Histogram bikin kamu lihat sebaran data dalam satu grafik. Ini cara bikinnya di Matplotlib pakai plt.hist(), dari kode paling dasar sampai atur bins dan label.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore