如何去除某欄位的值不為NaN的row?
2019/09/07 下午 08:04
機器學習共學討論版
廖崇幃
觀看數:53
回答數:1
收藏數:0
ml100-3
ml100-3-d11
範例的程式碼長這樣: app_train[app_train['AMT_ANNUITY'].isnull()['AMT_ANNUITY']
但我自己是這樣寫
1.app_train['AMT_ANNUITY'][app_train['AMT_ANNUITY'].apply(lambda x: type(x) != 'float64')]
2.app_train['AMT_ANNUITY'][app_train['AMT_ANNUITY'].apply(lambda x: type(x) != np.float64)]
3.app_train['AMT_ANNUITY'][app_train['AMT_ANNUITY'].apply(lambda x: x == 'NaN')]
我嘗試過這三種寫法都不行,想請問這寫法哪裡有問題嗎
回答列表
-
2019/09/07 下午 09:05張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,比較常見的還是用範例的寫法,不建議用 apply 自己比。關於你的問題,以下幾點回應:
1. 你的範例中間少一個 ],app_train[app_train['AMT_ANNUITY'].isnull()]['AMT_ANNUITY']
2. nan 不可以用 type 比較,因為 nan 本身也會是一個數值型態(因為 numpy array 要求資料相同型態)
3. nan 跟 nan 彼此不可以比較,所以要用 np.isnan() 來處理
以下範例做參考: