Pandas Memfilter Data
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:
Contents
hide
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:
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.contains.html
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.isin.html
Cover Image by Florante Valdez from Pixabay