使用df.groupby(['Cabin']).agg()語法出現問題
2019/05/19 下午 06:27
機器學習共學討論版
辛普恩
觀看數:8
回答數:1
收藏數:0
ml100-2
ml100-2-d24
請問這樣的寫法為什麼會有錯誤訊息?
如果是寫df.groupby(['Cabin']).size()就不會有問題,但用agg就會出現錯誤
回答列表
-
2019/05/20 下午 06:21陳明佑 (Ming You Chen)贊同數:1不贊同數:0留言數:1
剛剛來會測試的結果發現 :
因為 'size' 放入 set 會算出多行數值
(請比較 df.groupby(['Cabin']).agg({'size'}) 與 df.groupby(['Cabin']).agg('size') 結果的不同)
因此 agg 放入 dictionary 時, index 會判定成 "從已知的 column name 中選擇"
(所以可以執行的語法是 df.groupby(['Cabin']).agg({'Name':'size'}), 而'Name' 換成自訂名稱會報錯)
但是當限定資料為一個 Series (df.groupby(['Cabin'])['Name']) 時
放 dictionary 給自訂名稱就沒問題了 (df.groupby(['Cabin'])['Name'].agg({'Cabin_Count':'size'}))
嗯...所以說 Python 的好處是自己會判定適合的狀況, 壞處也是自己會判定適合的狀況...