關於相關係數出現nan?
請問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