Saat bekerja dengan analisis data di Python, menguasai teknik Filter Data di Pandas adalah keterampilan yang wajib dimiliki karena kita bisa mengambil informasi spesifik dari puluhan ribu baris tabel dengan cepat. Misalnya, ketika kamu membuka file CSV atau Excel laporan penjualan, kamu tidak membutuhkan seluruh tabel, tetapi hanya ingin melihat data transaksi di atas Rp1 juta dari cabang Jakarta saja.
Oleh karena itu, library Pandas menyediakan tiga metode utama yang sangat efisien untuk menyeleksi data sehingga proses olah data dataframe kamu menjadi jauh lebih mudah:
- Metode Label (
.loc[]): Digunakan untuk menyeleksi data berdasarkan nama baris atau kolom. Slicing bersifat inklusif. - Posisi Angka (
.iloc[]): Berfungsi mengambil data berdasarkan nomor indeks integer mulai dari 0. Slicing bersifat eksklusif. - Kondisi Logika (Boolean Indexing): Sangat cocok untuk menyaring data berdasarkan kondisi nilai tertentu (contoh:
df['Gaji'] > 5000000).
Selanjutnya, kita akan mengupas tuntas perbedaan ketiga metode tersebut secara mendalam. Selain itu, artikel ini juga dilengkapi dengan contoh kode interaktif sehingga kamu bisa langsung copy-paste dan mempraktikkannya di komputer!
🛠️ Persiapan Dataset untuk Filter Data di Pandas
Agar tutorial ini lebih mudah dipahami, pertama-tama mari kita buat dataset sederhana berisi data karyawan toko online. Selanjutnya, pastikan kamu sudah membuka Jupyter Notebook atau IDE favoritmu, kemudian jalankan kode Python di bawah ini:

1. Filter Data di Pandas dengan .loc[] — Berdasarkan Label
Pada dasarnya, metode .loc[] digunakan karena kita ingin mengambil data berdasarkan nama label indeks (baris) ataupun nama kolom. Oleh karena itu, metode ini sangat cocok diterapkan terutama saat tabel data kamu memiliki nama baris atau kolom yang jelas.
df.loc[label_baris, label_kolom]a. Seleksi Satu Baris Data
Sebagai contoh, jika kamu ingin melihat seluruh data lengkap milik karyawan bernama Citra, tentu saja kamu cukup menuliskan kode sederhana berikut ini:

b. Memilih Baris dan Kolom Tertentu
Lebih lanjut, bagaimana jika kita hanya ingin tahu kolom Kota dan Gaji dari karyawan bernama Budi dan Dewi? Untuk itu, kamu bisa memasukkan daftar label dalam bentuk list sehingga hasilnya sesuai keinginan:

c. Slicing Rentang Label (.loc)
Selain memilih satu per satu, kamu juga bisa melakukan slicing dari label awal ke label akhir. Namun, ada catatan penting yang harus diingat karena pada metode .loc[], batas akhir selalu ikut disertakan (inklusif).

2. Filter Data di Pandas dengan .iloc[] — Berdasarkan Posisi
Sebaliknya, berbeda dengan .loc[], metode .iloc[] bekerja berdasarkan urutan posisi angka (indeks integer) yang dimulai dari 0. Dengan demikian, kamu tidak perlu mengetahui label teks pada indeks sehingga bisa langsung mengakses baris tertentu.
Bahkan, kamu bisa membayangkan sistem kerja .iloc[] seperti nomor absensi di sekolah. Contohnya, baris pertama selalu bernomor 0, sedangkan baris kedua bernomor 1, dan seterusnya.
df.iloc[indeks_baris, indeks_kolom]a. Akses Baris Pertama (Posisi 0)
Misalnya, kamu ingin mengambil data karyawan pada baris pertama di dalam tabel. Oleh sebab itu, kamu hanya perlu memanggil indeks urutan 0 seperti kode di bawah ini:

b. Ekstraksi Baris & Kolom Angka
Selanjutnya, bagaimana jika kamu ingin mengambil baris ke-1 dan ke-3 (yaitu Budi dan Dewi), serta kolom ke-0 dan ke-2 (yaitu Kota dan Gaji)? Tentu saja, kamu cukup memasukkan urutan angka indeksnya sehingga perintahnya menjadi seperti ini:

c. Pemotongan Data Eksklusif (.iloc)
Sementara itu, sama seperti standar Python pada umumnya, batas akhir pada metode .iloc[] tidak disertakan (eksklusif). Akibatnya, penulisan 0:2 hanya akan mengambil indeks ke-0 dan ke-1 tanpa mengikutkan indeks ke-2.

3. Boolean Indexing: Cara Filter Data di Pandas Menggunakan Logika
Inilah teknik yang paling sering digunakan dalam analisis data dunia nyata karena sangat fleksibel. Pasalnya, kamu tidak perlu tahu urutan posisi baris maupun nama indeksnya, melainkan kamu hanya perlu menentukan kondisi logikanya saja.
a. Penyaringan Satu Kondisi
Sebagai ilustrasi, kita ingin mencari seluruh karyawan yang bekerja di kota Jakarta. Oleh karena itu, kamu bisa menggunakan operator persamaan sehingga hasilnya didapatkan dengan kode berikut:
Mau Kuasai Filter Data di Pandas: loc, iloc, dan Boolean Indexing Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Selain itu, kita juga bisa mencari karyawan dengan kriteria Gaji di atas Rp8.000.000 secara mudah karena cukup menggunakan simbol lebih besar (>):

b. Penggabungan Multi-Kondisi
Lebih menariknya lagi, kamu bahkan bisa menggabungkan beberapa kondisi sekaligus menggunakan operator bitwise. Khususnya, ada tiga daftar simbol yang wajib kamu ketahui:
&(Simbol DAN / AND): Dipakai ketika semua kondisi wajib terpenuhi sekaligus.|(Karakter ATAU / OR): Berguna jika salah satu kondisi saja sudah cukup.~(Tanda TIDAK / NOT): Berfungsi untuk membalikkan atau mengecualikan kondisi logika.
() di setiap kondisi agar Python tidak keliru membaca urutan operasi logika kamu!Sebagai contoh kasus, kita ingin mencari karyawan di Jakarta yang gajinya di atas Rp8.000.000. Hasilnya, kita bisa menuliskan kode gabungan seperti berikut ini:

🔥 Tips Pro: Fungsi Tambahan untuk Filter Data di Pandas
Agar analisismu makin cepat dan bersih, kamu juga bisa memanfaatkan tiga fungsi sakti tambahan dari library Pandas. Bahkan, fungsi-fungsi ini bisa menghemat waktu kode kamu secara signifikan:
- Fungsi
.isin()— Memilih dari daftar nilai tertentu
Misalnya, mencari karyawan di kota Jakarta atau Surabaya tanpa perlu menuliskan banyak operator
- Metode
.between()— Filter rentang nilai (Range)
Selanjutnya, fungsi ini sangat berguna untuk mencari karyawan dengan rentang usia tertentu, seperti antara 25 sampai 30 tahun:
- Fitur
.str.contains()— Pencarian teks (Substring/Regex)
Bahkan, kamu bisa memfilter data berdasarkan potongan teks, contohnya mencari karyawan yang namanya berakhiran huruf ‘i’:
📊 Rangkuman Metode Filter Data di Pandas: loc vs iloc vs Boolean
| Metode | Berdasarkan | Batas Akhir Slicing | Cocok Digunakan Untuk… |
|---|---|---|---|
.loc[] | Label (Nama Baris/Kolom) | Inklusif (Ikut) | Mengambil kolom spesifik berdasarkan namanya. |
.iloc[] | Posisi Angka (0, 1, 2...) | Eksklusif (Tidak Ikut) | Mengambil baris pertama/terakhir atau urutan angka. |
| Boolean Indexing | Kondisi Logika (>, ==, <) | – Tidak berlaku – | Analisis data berdasarkan kriteria nilai tertentu. |
🚫 3 Kesalahan Umum Saat Filter Data di Pandas
- Keliru Menggunakan
and/or(Seharusnya&/|)
❌ Salah:df[(df['Usia'] > 25) and (df['Kota'] == 'Jakarta')]
✅ Benar:df[(df['Usia'] > 25) & (df['Kota'] == 'Jakarta')] - Lupa Menambahkan Tanda Kurung pada Multi-Kondisi
Tanpa tanda kurung(), Python akan menghasilkan errorValueError: The truth value of a Series is ambiguous. - Tertukar Ketentuan Batas Slicing
.locdan.iloc
Ingat selalu:.loc['A':'C']akan menyertakan'C', sedangkan.iloc[0:2]hanya mengambil indeks0dan1.
🎯 Kesimpulan Tutorial Filter Data di Pandas
Kesimpulannya, memahami cara Filter Data di Pandas menggunakan .loc, .iloc, dan Boolean Indexing adalah fondasi terpenting dalam proses data wrangling sehari-hari. Dengan demikian, kamu tidak akan bingung lagi saat menghadapi dataset berukuran besar.
- Pertama, manfaatkan
.locapabila kamu sudah mengetahui nama baris atau kolomnya. - Kedua, pilih
.ilocketika seleksi dilakukan berdasarkan urutan posisi angkanya. - Terakhir, aplikasikan Boolean Indexing jika kamu ingin menyaring data berdasarkan kondisi atau kriteria logika tertentu.
Sudah siap membedah datasetmu berikutnya? Kalau kamu punya pertanyaan atau tips unik seputar Pandas, jangan ragu untuk tulis di kolom komentar di bawah, ya! 👇
❓ FAQ: Pertanyaan Seputar Filter Data di Pandas
1. Apa perbedaan utama .loc dan .iloc di Pandas?
Secara sederhana, .loc menggunakan label (nama) dari indeks atau kolom. Sebaliknya, .iloc bekerja berbasis posisi integer yang selalu dimulai dari angka 0.
2. Mengapa muncul error SettingWithCopyWarning saat memfilter data?
Biasanya, warning ini muncul karena kamu mencoba mengubah nilai pada DataFrame hasil filter tanpa menduplikasinya terlebih dahulu. Oleh sebab itu, solusinya adalah selalu menggunakan fungsi .copy() setelah memfilter data: df_baru = df[df['Usia'] > 25].copy().
3. Bisakah saya menggabungkan .loc dengan Boolean Indexing?
Tentu saja bisa! Bahkan, kamu bisa memfilter baris dengan kondisi logika sekaligus memilih kolom tertentu menggunakan .loc sehingga kode kamu menjadi lebih singkat:
Apakah tutorial ini membantu? Share artikel ini ke teman-teman komunitas pemrogramanmu dan pantau terus tutorial Python & Data Science berikutnya!
Dibuat oleh:
Mau Kuasai Filter Data di Pandas: loc, iloc, dan Boolean Indexing Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
