logo
Loading...

使用df.groupby(['Cabin']).agg()語法出現問題 - Cupoy

請問這樣的寫法為什麼會有錯誤訊息?如果是寫df.groupby(['Cabin']).size()就...

ml100-2,ml100-2-d24

使用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 的好處是自己會判定適合的狀況, 壞處也是自己會判定適合的狀況...