Penjelasan sederhana
Pandas mengecek syarat untuk setiap baris dan memberi jawaban True atau False. Baris yang True diambil, yang False dibuang. Persis seperti mencentang filter di Excel.
Sintaks
df[df['kolom'] == nilai]
df[(syarat1) & (syarat2)]
| Bagian | Keterangan |
|---|---|
==, !=, >, <, >=, <= | Operator pembanding. |
& | DAN: kedua syarat harus terpenuhi. |
| | ATAU: salah satu syarat cukup. |
~ | BUKAN: membalik syarat. |
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 df[kondisi]
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[(karyawan['kota'] == 'Jakarta') & (karyawan['gaji'] > 7000000)]
Hasil 3 baris × 7 kolom
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id | |
|---|---|---|---|---|---|---|---|
| 1 | 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NaN |
| 3 | 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 6 | 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
Kolom abu-abu adalah index, yaitu nomor baris asli di tabel. Nomornya tidak urut karena ada baris yang disaring atau diurutkan. Apa itu index?
Tiga karyawan Jakarta bergaji di atas 7 juta. Eko (6,9 juta) tidak masuk karena gajinya di bawah batas.
Cara kerjanya, langkah demi langkah
karyawan['kota'] == 'Jakarta'menghasilkan True/False untuk tiap baris.karyawan['gaji'] > 7000000juga menghasilkan True/False.&menggabungkan keduanya; hanya baris yang True di dua syarat yang diambil.
Dipakai untuk apa di kantor?
- Mengambil transaksi bulan tertentu, karyawan divisi tertentu, atau produk di atas harga tertentu.
- Menyiapkan subset data sebelum direkap.
Kesalahan yang sering terjadi
- Memakai
and/orseperti Python biasa. Di Pandas wajib&dan|. - Lupa memberi kurung di tiap syarat, sehingga muncul error karena urutan operator.
query()