logo
Loading...

群聚編碼問題? - Cupoy

程式碼:df['Sex'] = df['Sex'].fillna('None')mean_df = ...

lambda x: x.mode()[0]

群聚編碼問題?

2019/10/21 下午 04:39
機器學習共學討論版
嚴詩豪
觀看數:3
回答數:2
收藏數:0
lambda x: x.mode()[0]

程式碼:

df['Sex'] = df['Sex'].fillna('None')

mean_df = df.groupby(['Sex'])['Age'].mean().reset_index()

mode_df = df.groupby(['Sex'])['Age'].apply(lambda x: x.mode()[0]).reset_index()

median_df = df.groupby(['Sex'])['Age'].median().reset_index()

max_df = df.groupby(['Sex'])['Age'].max().reset_index()

mode_df


問題:

第三行的lambda x: x.mode()[0]的那個[0]是什麼意思?

有[0]的話會是這樣


沒有[0]的話會是這樣

回答列表

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

    mode 是眾數,可能超過一個以上,所以回傳的是 List。

  • 2019/10/22 下午 03:31
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:1
    留言數:0

    如果你只打 x.mode(), 因為眾數可能不只一個, 

    因此會傳回二維的Array

    結果會出錯, 無法放置於 column 之中

    所以我們要加上 [0], 讓他只傳回眾數中的第一個

    並使其成為一維陣列