iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

我與熊貓Pandas相處的日子系列 第 10

Day10- 資料探索(3)資料篩選

  • 分享至 

  • xImage
  •  

篩選資料是分析時,常會使用到的操作方式,用來簡化及提取所需要的資料。

戶名 | 行政區 | 購屋年份 | 價格
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(["中山區","古亭區","大同區"])

學完篩選了,明天再來其他資料探索囉~ /images/emoticon/emoticon32.gif


上一篇
Day9- 資料探索(2)重覆資料
下一篇
Day11- 資料探索(4)類型轉換
系列文
我與熊貓Pandas相處的日子30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言