Memahami Filter Data dengan Boolean Indexing pada Pandas

Python
Pandas

Beberapa cara yang dapat digunakan untuk mengganti nama kolom pada data tabel menggunakan Pandas

Penulis

Pandu Mulya Muhammad Syah

Diterbitkan

27 Juni 2023

Pendahuluan

Filter data merupakan salah satu operasi fundamental dalam analisis data, dan pandas, sebagai Python library yang populer, menyediakan teknik yang tangguh bernama boolean indexing. Dengan teknik ini, analis dapat dengan mudah memfilter baris-baris dalam DataFrame berdasarkan kondisi tertentu. Dalam artikel ini, dijelaskan secara detail bagaimana teknik ini memungkinkan analis data dapat dengan mudah mengekstrak subset data yang dibutuhkan.

Memahami Kondisi Boolean

Boolean indexing dimulai dengan membuat kondisi boolean yang menghasilkan nilai True atau False untuk setiap baris pada DataFrame. Kondisi-kondisi ini melibatkan perbandingan atau operator logika. Contoh di bawah ini menampilkan cara pembuatan filter pada kolom matematika yang memiliki nilai di atas 70.

import pandas as pd

data = {
    "nama": ["Ani", "Budi", "Cindy", "Dodi", "Eka"],
    "matematika": [64, 96, 67, 35, 48],
    "fisika": [75, 85, 71, 83, 77],
    "kimia": [54, 58, 91, 45, 64],
}

df = pd.DataFrame(data)
kondisi = df["matematika"] > 70
kondisi
0    False
1     True
2    False
3    False
4    False
Name: matematika, dtype: bool

Hasil dari perintah di atas menampilkan Series Pandas dengan nilai boolean, di mana True menunjukkan bahwa kondisi terpenuhi untuk baris tersebut, dan False menunjukkan sebaliknya.

Memfilter dengan Boolean Indexing

Untuk memfilter DataFrame menggunakan boolean indexing, kondisi sebelumnya dapat dimasukkan langsung pada kurung siku seperti contoh di bawah ini.

df_terfilter = df[df["matematika"] > 70]
df_terfilter
nama matematika fisika kimia
1 Budi 96 85 58

Teknik di atas akan menampilkan DataFrame baru yang telah difilter berdasarkan kondisi yang dipilih.

Menggunakan Kondisi Ganda

Boolean indexing memungkinkan analis untuk menggabungkan kondisi-kondisi ganda menggunakan operator logika seperti & (dan), | (atau), dan ~ (bukan). Hal ini memungkinkan filtering yang lebih kompleks. Misalnya, kita ingin memfilter DataFrame berdasarkan kondisi matematika di atas 70 dan fisika di atas 80:

kondisi = (df["matematika"] > 70) & (df["fisika"] > 80)
df_terfilter = df[kondisi]
df_terfilter
nama matematika fisika kimia
1 Budi 96 85 58

Dengan menggunakan tanda kurung untuk mengelompokkan kondisi dengan benar, analis mendapatkan DataFrame baru, df_terfilter, yang memenuhi kedua kondisi tersebut.

Memanfaatkan Fitur Negasi

Boolean indexing juga memungkinkan kondisi negasi menggunakan operator ~ (bukan). Misalnya, untuk memfilter baris-baris di mana kolom kimia tidak melebihi nilai 60:

kondisi = ~(df["kimia"] > 60)
df_terfilter = df[kondisi]
df_terfilter
nama matematika fisika kimia
0 Ani 64 75 54
1 Budi 96 85 58
3 Dodi 35 83 45

Dengan menggunakan pendekatan ini, analis membuat DataFrame baru, df_terfilter, yang terdiri dari baris-baris yang tidak memenuhi kondisi tersebut.

Memfilter Beberapa Kolom dengan Boolean Indexing

Boolean indexing juga mendukung kondisi yang melibatkan beberapa kolom. Perintah di bawah ini digunakan untuk memfilter siswa bernama Ani yang memiliki nilai fisika di atas 80.

kondisi = (df["nama"] == "Ani") & (df["fisika"] > 80)
df_terfilter = df[kondisi]
df_terfilter
nama matematika fisika kimia

Dengan menggunakan teknik ini, analis mendapatkan DataFrame baru, df_terfilter, yang hanya terdiri dari baris-baris yang memenuhi kedua kondisi tersebut.

Kesimpulan

Boolean indexing adalah teknik yang handal pada pandas yang memungkinkan analis data untuk memfilter data dengan efisien berdasarkan kondisi-kondisi tertentu. Dengan memahami cara membuat kondisi boolean, menggabungkan kondisi-kondisi ganda, dan memanfaatkan negasi, analis dapat dengan mudah mengekstrak subset data yang diinginkan. Teknik ini meningkatkan kemampuan analitis pandas, menjadikannya library yang penting untuk memfilter data pada Python.