logo
Loading...

欄位型態的判斷? - Cupoy

請問 isin() 這樣的用法有什麼錯誤,用np.float64 結果就正確,用 ['int64' ...

ml100-3,dtypes.isin()

欄位型態的判斷?

2019/09/21 上午 09:38
機器學習共學討論版
駱志忠
觀看數:12
回答數:3
收藏數:0
ml100-3
dtypes.isin()

請問 isin() 這樣的用法有什麼錯誤,用np.float64 結果就正確,用 ['int64' , np.int64],  結果全是False呢?


回答列表

  • 2019/09/21 下午 11:37
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:1

    嗨,這邊的 int64 或 float64 是有可能依照電腦規格改變的(不過同一台電腦應該不變,這邊我覺得很怪)。意思是在解答的電腦上資料是用 64 bit 作儲存,但在你的電腦可能是 32 bit。以下兩點建議:  


    (1) 先用 df.info() 或 df.describe() 的方式看一下欄位 

    (2) 用 np.dtype('int'), np.dtype('float') 定義類別比較好

    (3) 你可以比較這三者 type("int")、 type('np.dtype("int")')、type(np.int)

  • 2019/09/22 下午 05:37
    駱志忠
    贊同數:0
    不贊同數:0
    留言數:0

    今天又試了一次,結果又正常了, 為了確認環境是單純的,在重新啟動後,在讀完檔後就立即執行上列程式,但我還是不知上次發生錯誤的原因為何?

  • 2019/09/23 上午 09:53
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    1. df.info(), 與df.dtypes 所呈現的欄位型態是一致的 

    2. 請問定義類別的意思是? 

    3. 前兩者是str, 最後一個才是type


    => 從第三點來看,這三種型態輸入值可以是字串或是型態。不過在真實運算時會自動轉換,因此可能會不可預期狀況出現。例如 'int' 字串 轉成 int64 還是 int32 的型態 (?)