app_train[~app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY']程式碼意思?
2019/05/04 下午 11:24
機器學習共學討論版
Steve Chu
觀看數:10
回答數:2
收藏數:0
ml100-2
amt_annuity
語法
ml100-2-d07
您好 我想請問一下下列紅色部分的程式碼是什麼意思呢
q_all = [np.percentile(app_train[~app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY'], q = i) for i in range(101)]
謝謝
回答列表
-
2019/05/05 上午 01:00luohq_dsr贊同數:不贊同數:留言數:
isnull判斷缺失 返回為 true false矩陣,如果是缺失則返回 TURE 不是缺失則返回false 因此需要反向,
[~app_train['AMT_ANNUITY'].isnull()]這樣得出來的才是 不是空值的值
-
2019/05/05 下午 04:38張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
樓上講的是對的:
app_train[~app_train['AMT_ANNUITY'].isnull()] => 取出 app_train 當中 AMT_ANNUITY 不為空的 DataFrame
另外補充一下這段的用法,這種複雜的用法會建議從裡面往外看:
我們先看 ~app_train['AMT_ANNUITY'] 會回傳一個 Boolean Series 如下:
```
0 False
1 False
2 True
...
Name: numeric, dtype: bool
```
當我們把上述 Boolean 結果放在 DF 的 index 中,稱為 Boolean filtering/indexing,會將等於 True 的資料留下來。換句話說就是用 True/False 來決定每一筆資料要不要篩選。