類別型欄位補缺None的問題
2019/06/15 下午 01:47
機器學習共學討論版
redcard
觀看數:23
回答數:2
收藏數:0
ml100-2
ml100-2-d17
範例中有提到,if df[c].dtype == 'object': # 如果是文字型 / 類別型欄位, 就先補缺 'None' 後, 再做標籤編碼
但是到了作業,if df[c].dtype == 'object':,就沒有再補缺 'None' 的處理
請問是為什麼?
回答列表
-
2019/06/17 上午 10:35陳明佑 (Ming You Chen)贊同數:不贊同數:留言數:
其實兩個寫法都是可以的
只是第一種寫法比較接近原意 : 這樣後面在做 MinMaxEncoder 時不用再經過list轉換
第二種寫法比較簡潔,但比較難懂 : 如果 MinMaxEncoder 不放在list中會出狀況, 只好加裝
-
2019/06/18 下午 03:10張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
嗨,我們試著把這些處理都拿掉:
這樣執行之後會顯示錯誤:TypeError: unorderable types: str() < int()
原因是因為資料中有大量的 -1 ,在做轉換的時候會被誤判成數字。因此你可以選擇幾種做法:
1. 轉換前先把資料中的 -1 補值成 None
2. 利用 df[c] = df[c].astype('str') 將資料轉換成字串型態
3. 用 df[c].values 將資料轉成 array,array 本身就限定型態唯一