Penjelasan sederhana
loc seperti menunjuk alamat: "baris yang ini, kolom yang itu". Filter dan pilih kolom selesai dalam satu langkah.
Sintaks
df.loc[baris, kolom]
| Bagian | Keterangan |
|---|---|
baris | Nomor baris (index), rentang seperti 2:4, atau syarat penyaring. |
kolom | Nama kolom atau daftar nama kolom. Pakai : untuk semua kolom. |
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 loc[]
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.loc[karyawan['gaji'] > 9000000, ['nama', 'gaji']]
Hasil 3 baris × 2 kolom
| nama | gaji | |
|---|---|---|
| 0 | Andi Pratama | 12500000 |
| 1 | Bunga Lestari | 9800000 |
| 5 | Fajar Nugroho | 11000000 |
Kolom abu-abu adalah index, yaitu nomor baris asli di tabel. Nomornya tidak urut karena ada baris yang disaring atau diurutkan. Apa itu index?
Baris disaring dengan syarat gaji di atas 9 juta, dan kolomnya langsung dipilih: nama dan gaji.
Cara kerjanya, langkah demi langkah
- Bagian sebelum koma menentukan baris: yang gajinya di atas 9 juta.
- Bagian sesudah koma menentukan kolom: nama dan gaji.
- Hasilnya tabel kecil berisi irisan keduanya.
Dipakai untuk apa di kantor?
- Filter sekaligus memilih kolom untuk laporan.
- Mengubah nilai di baris tertentu:
df.loc[syarat, 'status'] = 'Senior'.
Kesalahan yang sering terjadi
- Tertukar dengan
iloc.loc[2:4]ikut mengambil label 4,iloc[2:4]tidak. - Mengubah data lewat dua kurung siku beruntun (
df[syarat]['kolom'] = ...). Pandas akan menampilkan peringatan dan datanya bisa tidak berubah. Pakaidf.loc[syarat, 'kolom'] = ....
isin()