篩選資料是分析時,常會使用到的操作方式,用來簡化及提取所需要的資料。
戶名 | 行政區 | 購屋年份 | 價格
A | 松山區 | 2020/10/5 |2200
B | 大安區 | 2022/10/5|2500
C | 古亭區 | 2021/10/5|1500
D | 古亭區 | 2019/10/5|800
E | 中山區 | 2022/10/5|1000
F | 城中區 | 2023/10/5|1200
G | 中山區 | 2022/10/5|1450
H | 延平區 | 2018/10/5|750
I | 大同區 | 2022/10/5|1400
J | 中山區 | 2021/10/5|1800
假設要找出行政區為中山區,可以用運算子 ==判斷:
df_house["行政區"] == "中山區"
執行程式碼可看到若為中山區則顯示True,否則為False,
以這個當作過濾器:
fliter = (df_house["行政區"] == "中山區")
df_house[fliter]
執行就可以看到顯示出來的行政區皆為中山區
也可以用!=:
DAN = df_house['行政區'] != "大安區"
當然也可以用>,<像是:
df_house["價格"] > 1100
df_house[df_house["價格"] > 1100]
用比較運算子就可以過濾並取得我們所要的數值,上面可顯示出房價大於1100萬的資料。
過濾日期也可:
BD= df_house["購屋年份"] >= "2020-10-05"
df_house[BD]
如果想要過濾不只一個條件呢?則利用布林運算子
M1 = df_house["行政區"] != "大安區"
M2 = df_house["購屋年份"] >= "2020-10-01"
上面程式中,我們設定M1為行政區不為大安區的資料,M2設定成開始日期大於2020-10-01的資料。
設定完遮罩之後就可以用布林運算子(and):
df_house[(M1 & M2)]
這樣就只會顯示M1和M2都成立的資料,當然也可以用或(or):
df_house[(M1 | M2)]
between()取中間值也為一個不錯的方法:
df_house[df_house["購屋年份"].between("2019-10-01","2022-10-01")]
可以得到購屋年份為"2019-10-01","2022-10-01"間的資料。
isin()方法可以做到篩選:
M = df_house["行政區"].isin(["中山區","古亭區","大同區"])
學完篩選了,明天再來其他資料探索囉~