logo
Loading...

如何去除某欄位的值不為NaN的row? - Cupoy

範例的程式碼長這樣: app_train[app_train['AMT_ANNUITY'].isnu...

ml100-3,ml100-3-d11

如何去除某欄位的值不為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() 來處理


    以下範例做參考: