logo
Loading...

關於相關係數出現nan? - Cupoy

請問pd.corr()在計算相關係數時遇到nan會無法計算嗎?還有out[43]結果為什麼是DAYS...

d15

關於相關係數出現nan?

2020/03/12 下午 05:32
機器學習共學討論版
Kevin
觀看數:46
回答數:3
收藏數:0
d15

請問pd.corr()在計算相關係數時遇到nan會無法計算嗎?

還有out[43]結果為什麼是DAYS_EMPLOYED_ANOM不是DAYS_EMPLOYED

謝謝

回答列表

  • 2020/03/12 下午 06:59
    李子明
    贊同數:2
    不贊同數:0
    留言數:2

    nan那筆將不會被列入計算

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.corr.html


    app_train.corr()這樣子寫,會把「所有的欄位排列組合兩兩比較來得到相關係數。

    app_train.corr()['TARGET']這樣子寫,只會把「TARGET這個欄位」取出來看這個欄位跟其他欄位的相關係數。

    DAYS_EMPLOYED_ANOM是你在In[40]的第一行新創造出來的欄位,所以依TARGET這個欄位的順序來看,被放到最後一個位置上。

    DAYS_EMPLOYED也是有的,他的位置是在「...」那一行之中,因為太多資料了,所以沒顯示出來。

  • 2020/03/12 下午 11:03
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨,


    你程式中的第一行: app_train['DAYS_EMPLOYED_ANOM'] = ... == ... ,你預期想要做什麼事?以及你有看過他的結果嗎?這邊應該是造成你最後 Nan 的原因


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/03/14 下午 10:57
    徐正憲
    贊同數:0
    不贊同數:0
    留言數:0

    你的In[40]跑了兩次,DAYS_EMPLOYED在第一次跑的時候365243已經被取代成NaN,

    第二次跑因為DAYS_EMPLOYED沒有任何一列為365243了,

    DAYS_EMPLOYED_ANOM在此時被更新成全部都False,

    計算相關係數時會有零除狀況發生,因此計算結果為NaN