Pandas DataFrame – Filtering Menggunakan query()

Method query berguna untuk retrieve data dengan kondisi tertentu.

Untuk menggunakan method query(), label dari kolom tidak boleh ada spasi.

Pertama kita load library dan data untuk keperluan tutorial.

import pandas as pd

df = pd.read_csv("jamesbond.csv", index_col="Film")
df.sort_index(inplace=True)

Berikutnya kita ganti spasi dengan tanda underscore pada label kolom.

df.columns = [colname.replace(" ", "_") for colname in df.columns]

Jika kita check, nama kolom sudah tidak mengandung spasi.

df.columns
Index(['Year', 'Actor', 'Director', 'Box_Office', 'Budget',
       'Bond_Actor_Salary'],
      dtype='object')

Berikutnya kita akan menggunakan method query().

Contoh, mengambil data film yang dibintangi Sean Connery.

df.query("Actor == 'Sean Connery'")

Sesuai ekspektasi, data yang dikembalikan adalah seluruh film yang dibintangi Sean Connery.

Perbedaan dengan method filtering sebelumnya, untuk operasi boolean, digunakan keyword and atau or atau not.

Contoh menampilkan film yang dibintangi Sean Connery dan Director bukan Terence Young.

df.query("Actor == 'Sean Connery' and Director != 'Terence Young'")
Keyword in juga dapat digunakan. Berikut contoh menampilkan data film yang dibintangi Sean Connery atau film yang release pada tahun 1964 atau 1967 atau 1971.
df.query("Actor == 'Sean Connery' or Year in [1964, 1967, 1971]")
Sharing is caring:

Leave a Comment