群聚編碼問題?
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], 讓他只傳回眾數中的第一個
並使其成為一維陣列