Day9 example question?
請問example理面的倒數第二步驟這段code:
app_train[app_train['OWN_CAR_AGE'] > 50]['OWN_CAR_AGE']
他是如何只抓出"OWN_CAR_AGE">50的數據阿???
有點看不懂這段的指令是怎麼操作的?
回答列表
-
2019/09/06 上午 11:30駱志忠贊同數:2不贊同數:0留言數:1
一開始我也不太懂,建議將程式拆解看,查看每一步驟的結果,比如:執行app_train['OWN_CAR_AGE'] > 50,之後會產生一堆true, false 結果,
然後將上面的結果(假設為x)代入app_train[ x] 就會只留下 >50的筆數,
程式最後的 ['OWN_CAR_AGE'], 是獲取特定欄位資料,最後的結果就會只留下
> 50 並且只有 OWN_CAR_AGE 這個欄位的資料, 以上個人見解,如有錯誤,請不吝指教
-
2019/09/06 上午 11:35Wei-po Tsai贊同數:1不贊同數:0留言數:2
Hi!同學你好:我是個剛學Python的新手,對你提到的問題很有興趣,所以研究了一下。
心得分享:遇到比較長的程式碼,如果看不大懂的話,我的作法是拆開來一項一項看,就會比較容易理解喔!
我寫了以下說明,希望對你有幫助:
-
2019/09/06 下午 10:16張維元 (WeiYuan)贊同數:1不贊同數:0留言數:1
嗨,樓上兩位同學基本上已經把我想說的説完了!
我這邊補充一下這種方法叫「Boolean Filter/Mask」
```
app_train[app_train['OWN_CAR_AGE'] > 50]['OWN_CAR_AGE']
```
* app_train['OWN_CAR_AGE'] => 取出 OWN_CAR_AGE 欄位
* app_train['OWN_CAR_AGE'] > 50 => 取出 OWN_CAR_AGE 欄位是否符合條件
* app_train[app_train['OWN_CAR_AGE'] > 50] => 依照條件取出資料
* app_train[app_train['OWN_CAR_AGE'] > 50]['OWN_CAR_AGE'] => 依照條件取出資料的 OWN_CAR_AGE 欄位
-
2019/09/07 下午 09:22張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0