Pandas Memfilter Data

Kode Lima Detik

import re
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/aansubarkah/basangdata_pandas/master/pandas-beginner/penjualan.csv')

df[df['nama'].str.contains('in', flags=re.IGNORECASE)]
df[(df['jan'] > 100) & (df['jan'] < 300)]
df[(df['nama'].str.contains('on', flags=re.IGNORECASE)) | (df['jan'] > 200)]

Ref:


Hal yang sering dilakukan selain memilih kolom adalah memilih baris berdasarkan kondisi/kriteria/nilai tertentu.

Kita akan menggunakan lagi data bersahadja ini.

import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/aansubarkah/basangdata_pandas/master/pandas-beginner/penjualan.csv')

Memilih Satu Kondisi

Memilih Angka

Memilih Data dengan Nilai Sama Dengan

df[df['jan'] == 200]
df[df.jan.eq(200)]

Memilih Data dengan Nilai Tidak Sama Dengan

df[df['jan'] != 200]
df[df.jan.ne(200)]
df[~(df['jan'] == 200)]

Pada kode terakhir terdapat tanda ~ (pada keyboard di sebelah kiri angka 1) merupakan operator negasi (bukan). Sehingga langkah yang dilakukan pandas adalah, pilih kolom jan bernilai sama dengan 200, lalu pilih data selain (yang bukan) itu. Operator ini akan kerap digunakan karena mudah dicerna akal sehingga kode mudah dipahami.

Memilih Data dengan Nilai Lebih Dari

df[df['jan'] > 200]
df[df.jan.gt(200)]

Memilih Data dengan Nilai Lebih Dari atau Sama Dengan

df[df['jan'] >= 200]
df[df.jan.ge(200)]

Memilih Data dengan Nilai Kurang Dari

df[df['jan'] < 200]
df[df.jan.lt(200)]

Memilih Data dengan Nilai Kurang Dari atau Sama Dengan

df[df['jan'] <= 200]
df[df.jan.le(200)]

Memilih Teks

Memilih Data yang Mengandung Teks

df[df['nama'].str.contains('Burhan')]
df[df['nama'].str.contains('Jul')]

Memilih Insensitive Teks

import re
df[df['nama'].str.contains('in', flags=re.IGNORECASE)]

Memilih Sesuai Data di List/Dataframe Lain

Berdasarkan List

jan_sales = [95, 125]
df[df['jan'].isin(jan_sales)]

Berdasarkan Dataframe Lain

d = {'tinggi': [320, 300], 'rendah': [95,100]}
df2 = pd.DataFrame(data=d)

df[df['jan'].isin(df2['tinggi'])]
df[df['jan'].isin(df2['rendah'])]

Memilih Lebih dari Satu Kondisi

Memilih Diantara Dua Rentang Nilai

df[(df['jan'] > 100) & (df['jan'] < 300)]

Memilih Diantara Beberapa Kondisi (or condition)

df[(df['nama'].str.contains('on', flags=re.IGNORECASE)) | (df['jan'] > 200)]

Lebih Lanjut:


Cover Image by Florante Valdez from Pixabay

Leave a Reply

Your email address will not be published. Required fields are marked *