Data yang digunakan masih data airbnb pada modul sebelumnya.
Untuk mengambil sebagian dataset dari sebuah dataframe, Anda dapat lakukan slicing. Slicing bisa dilakukan terhadap column atau row.
Memilih Kolom Data
Anda bisa memilih kolom tertentu saja. Bisa single column atau multicolumn.
import pandas as pd
df = pd.read_csv("airbnb.csv")
#pendekatan array
df["host_name"]
#atau pendekatan dot
df.host_name
#multicolumn
df[["host_name", "neighbourhood_group"]]
Filtering DataFrame
Contohnya tampilkan data dengan host_name= “Taz”.
df[df.host_name == "Taz"]
Jika logic filtering rumit, Anda bisa buat aturan filter dalam variable.
mask = df.host_name == "Taz" df[mask]
Negasi juga bisa digunakan untuk filter. Padsa contoh filter untuk host_name == “Taz”, kita ingin menampilkan semua data kecuali Taz.
mask = df.host_name == "Taz" df[~mask]
Lebih lanjut, Anda bisa tambahkan operasi juga pada mask diatas, contoh fungsi sum().
mask = df.host_name == "Taz" mask.sum() #perintah mask diatas sama dengan (df.host_name == "Taz").sum()
Filtering juga bisa lebih dari satu kolom, contoh ingin menampilkan data harga dibawah 100 dan minimum nights dibawah 3 malam.
filter2 = (df.price < 100) & (df.minimum_nights<3) filter2.sum()
Filtering Column dan Row
Untuk menampilkan data dengan filtering column dan row, gunakan fungsi loc. Aturan Python slicing juga dapat digunakan.
#menampilkan data dengan filter mask, kolom host_name dan neighbourhood. df.loc[mask, ["host_name", "neighbourhood_group"]] #menampilkan data dengan filter mask, dari kolom host_name sampai dengan neighbourhood. df.loc[mask, "host_id" : "neighbourhood_group"] #menampilkan data dengan filter mask, seluruh kolom. df.loc[mask, :]
Slicing berdasarkan index
Untuk slicing menggunakan index, gunakan fungsi iloc. Aturan Python slicing juga bisa digunakan.
#menampilkan data baris ke 0, kolom ketiga (host_name). df.iloc[0, 3] #mengembalikan 'John' #menampilkna data baris ke 0, semua kolom df.iloc[0, :]
id 2539
name Clean & quiet apt home by the park
host_id 2787
host_name John
neighbourhood_group Brooklyn
neighbourhood Kensington
latitude 40.6475
longitude -73.9724
room_type Private room
price 149
minimum_nights 1
number_of_reviews 9
last_review 2018-10-19
reviews_per_month 0.21
calculated_host_listings_count 6
availability_365 365
Name: 0, dtype: object
Menggunakan Mask Helper
Mask helper adalah fungsi seperti between dan isin. Berikut contoh menampilkan data dengan harga antara 100 dan 200.
df.loc[df.price.between(100,200), ["host_name", "price"]].head()
host_name price
0 John 149
2 Elisabeth 150
5 Chris 200
9 Ben 150
10 Lena 135
Berikut adalah contoh menampilkan data dengan price adalah 100 atau 200.
df.loc[df.price.isin([100,200]), ["host_name", "price"]].head()
host_name price
5 Chris 200
54 Francesca 200
63 Dimitri 200
76 Victoria 200
94 Christiana 100
Teknik diatas adalah teknik yang umum digunakan. Masih banyak teknik yang bisa digunakan, dan tidak bisa dibahas satu persatu. Silakan bereksperimen.
1 thought on “DataFrame Slicing dan Filtering”