第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)一列的聚合在一列中填充空值

根據(jù)一列的聚合在一列中填充空值

喵喵時光機(jī) 2022-08-16 18:45:50
我正在學(xué)習(xí)一些基本的數(shù)據(jù)科學(xué),我正在研究泰坦尼克號數(shù)據(jù)集?!澳挲g”列具有空值,我想用其他列的平均值填充,例如“Pclass”或“”?!癙艙”是指乘客艙位,根據(jù)乘客是否持有1等艙、2等艙或3等艙機(jī)票,有三個值(1、2、3)。我試圖通過編寫一個函數(shù)來概括此過程,該函數(shù)采用兩個列名,“Age”和我們要用于聚合的列。我想不出如何完全概括這一點(diǎn),所以現(xiàn)在,假設(shè)我基于Pclass進(jìn)行聚合。我根據(jù)Pclass得到了平均年齡,如下所示:# Figure out the mean age for each classmean_age = round(df_train.groupby('Pclass').mean()['Age'])mean_age我試圖定義如下函數(shù)(38,30和25)來自mean_age:def fill_age(data, col1, col2):    if data[col1].isnull():        if data[col2] == 1:            return 38        elif data[col2] == 2:            return 30        else:            return 25    else:        return data[col1]并嘗試使用 .apply():df_train['Age'] = df_train.apply(fill_age(df_train,'Age','Pclass'), axis = 1)我在這里犯了什么錯誤,我該如何思考這個問題來修復(fù)它并進(jìn)一步推廣它?編輯:以下行似乎已經(jīng)工作,但我需要它來將更改應(yīng)用于數(shù)據(jù)幀本身,并且我不能將“就地”與.apply()一起使用df_train.groupby('Pclass')['Age'].apply(lambda x: x.fillna(round(x.mean())))
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

您不應(yīng)在 中調(diào)用函數(shù),而應(yīng)通過 或 關(guān)鍵字參數(shù)傳遞函數(shù)和參數(shù):applyargs=()

df['Age'] = df.apply(fill_age, col1='Age', col2='Pclass', axis=1)

但是有更好的方法可以通過矢量化來做到這一點(diǎn):

df['Age'] = df['Age'].fillna(df.groupby('Pclass')['Age'].transform('mean'))


查看完整回答
反對 回復(fù) 2022-08-16
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號