Traffine I/O

Bahasa Indonesia

2022-11-16

Teknik Filtering Data di Pandas

Pendahuluan

Dalam artikel ini, saya akan menjelaskan berbagai teknik untuk melakukan filtering data di Pandas. Filtering adalah operasi yang sangat penting dalam analisis data, yang memungkinkan Anda untuk memilih data tertentu dari DataFrame berdasarkan kondisi tertentu. Dengan menguasai teknik-teknik ini, Anda dapat secara efektif menganalisis dan memanipulasi data Anda.

Menggunakan Indeks Boolean

Indeks boolean adalah teknik yang mudah dipahami dan kuat untuk melakukan filtering data di DataFrame Pandas. Ini melibatkan pembuatan masker boolean yang mewakili kondisi yang ingin Anda filter. Misalnya, katakanlah Anda memiliki DataFrame yang bernama df yang berisi informasi tentang produk-produk yang berbeda, dan Anda ingin memfilter produk-produk dengan harga lebih besar dari 100.

python
price_filter = df['price'] > 100
filtered_df = df[price_filter]

Menggunakan Metode query

Metode query adalah cara lain yang mudah untuk melakukan filtering data di DataFrame. Ini memungkinkan Anda untuk menulis string query sebagai argumen dan mengembalikan baris yang memenuhi kondisi yang ditentukan. Menggunakan contoh yang sama, Anda dapat memfilter produk-produk dengan harga lebih besar dari 100 sebagai berikut:

python
filtered_df = df.query('price > 100')

Menggabungkan Filter

Dalam beberapa kasus, Anda mungkin ingin menerapkan beberapa filter pada data Anda. Untuk menggabungkan filter, Anda dapat menggunakan operator logika seperti & (dan) atau | (atau). Misalnya, mari kita filter produk-produk dengan harga lebih besar dari 100 dan rating yang lebih tinggi dari 4:

python:python

python
price_filter = df['price'] > 100
rating_filter = df['rating'] > 4
filtered_df = df[price_filter & rating_filter]

Filtering Berdasarkan Pola String

Pandas juga memungkinkan Anda untuk memfilter data berdasarkan pola string. Anda dapat menggunakan aksesori str bersama dengan metode string seperti contains, startswith, atau endswith. Misalnya, untuk memfilter produk-produk dengan nama yang mengandung kata "Laptop":

python
name_filter = df['name'].str.contains('Laptop')
filtered_df = df[name_filter]

Filtering dengan Kondisi Tanggal dan Waktu

Pandas menyediakan dukungan yang kuat untuk filtering berdasarkan kondisi tanggal dan waktu. Jika Anda memiliki kolom DateTime, Anda dapat dengan mudah memfilter berdasarkan rentang tanggal atau periode waktu tertentu. Misalnya, untuk memfilter catatan yang dibuat setelah 1 Januari 2022:

python
date_filter = df['created_at'] > '2022-01-01'
filtered_df = df[date_filter]

Anda juga dapat menggunakan metode between untuk memfilter data dalam rentang tanggal tertentu:

python
date_filter = df['created_at'].between('2022-01-01', '2022-12-31')
filtered_df = df[date_filter]

Menggunakan Metode isin

Metode isin berguna untuk memfilter data berdasarkan daftar nilai. Ini memeriksa apakah setiap elemen dalam kolom yang diberikan hadir dalam daftar yang ditentukan dan mengembalikan masker boolean. Misalnya, katakanlah Anda memiliki DataFrame yang bernama df dengan kolom 'category' dan Anda ingin memfilter produk yang termasuk dalam kategori 'Electronics' dan 'Clothing':

python
category_filter = df['category'].isin(['Electronics', 'Clothing'])
filtered_df = df[category_filter]

Mengaplikasikan Fungsi Kustom

Kadang-kadang, Anda mungkin perlu menerapkan fungsi kustom untuk memfilter data Anda. Pandas menyediakan metode apply, yang memungkinkan Anda untuk menerapkan fungsi kustom sepanjang sumbu tertentu (baris atau kolom) dari DataFrame Anda. Misalnya, mari buat filter kustom untuk memilih produk dengan rasio harga-ke-rating lebih besar dari 20:

python
def price_to_rating_ratio(row):
    return row['price'] / row['rating'] > 20

ratio_filter = df.apply(price_to_rating_ratio, axis=1)
filtered_df = df[ratio_filter]

Filtering dengan Ekspresi Regular

Pandas juga mendukung filtering data menggunakan ekspresi regular. Anda dapat menggunakan aksesori str bersama dengan metode match untuk menerapkan pola regex pada kolom. Misalnya, mari filter produk dengan nama yang dimulai dengan 'Laptop':

python
import re

name_filter = df['name'].str.match(r'^Laptop')
filtered_df = df[name_filter]

Filtering dengan DataFrame Multi-Indeks

Dalam kasus di mana Anda memiliki DataFrame dengan indeks multi-level, Anda dapat menggunakan metode xs untuk memfilter data berdasarkan level indeks tertentu. Misalnya, katakanlah Anda memiliki DataFrame multi-indeks dengan 'category' dan 'sub_category' sebagai level indeks, dan Anda ingin memilih semua baris dengan 'Electronics' sebagai kategori:

python
filtered_df = df.xs('Electronics', level='category')

Agregasi Kondisional

Agregasi kondisional memungkinkan Anda untuk menerapkan fungsi agregasi pada subset data Anda berdasarkan kondisi tertentu. Misalnya, mari hitung rata-rata harga produk dengan rating lebih tinggi dari 4:

python
import numpy as np

rating_filter = df['rating'] > 4
average_price = np.mean(df.loc[rating_filter, 'price'])

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!