query() di Pandas

Menyaring baris dengan menulis syarat sebagai teks, lebih ringkas dan mirip SQL.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

query() membuat syarat filter bisa dibaca seperti kalimat. Kalau sudah kenal SQL, rasanya seperti menulis bagian WHERE.

Sintaks

df.query('syarat')
BagianKeterangan
'syarat'Teks syarat. Kolom ditulis tanpa df[...]; pakai and, or, not, in. Variabel luar dipanggil dengan @nama.

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

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
query.py
karyawan.query("kota in ['Bandung', 'Surabaya'] and gaji >= 8000000")

Hasil 3 baris × 7 kolom

idnamadept_idkotagajitgl_masukatasan_id
0 1 Andi Pratama 3 Bandung 12500000 2019-03-11 NaN
2 3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
5 6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NaN

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 dari Bandung atau Surabaya dengan gaji minimal 8 juta.

Cara kerjanya, langkah demi langkah

  1. Teks syarat dibaca oleh Pandas.
  2. kota in [...] mengecek apakah kota ada di daftar, gaji >= 8000000 mengecek gaji.
  3. and menggabungkan keduanya, lalu baris yang memenuhi diambil.

Dipakai untuk apa di kantor?

  • Filter dengan banyak syarat supaya kode tetap rapi.
  • Analis yang terbiasa SQL dan ingin sintaks yang mirip.

Kesalahan yang sering terjadi

  • Nama kolom yang mengandung spasi harus ditulis dengan backtick: `nama kolom` > 5.
  • Lupa tanda @ saat memakai variabel dari luar.
Progres bab Memilih & Menyaring 0/6 dipelajari
Lanjut: loc[]

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