1 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
我需要根據(jù)groupby和mean函數(shù)創(chuàng)建的第二個(gè)數(shù)據(jù)幀在主數(shù)據(jù)框中填充 NA 值。
你不需要那一步。您可以通過(guò)分組為多個(gè)數(shù)據(jù)幀、對(duì)每個(gè)單獨(dú)的數(shù)據(jù)幀應(yīng)用均值并僅在該數(shù)據(jù)幀內(nèi)填充 NA 值來(lái)一步完成此操作。
因此,不要?jiǎng)?chuàng)建mean_data數(shù)據(jù)框,而是執(zhí)行以下操作:
def fill_by_mean(df):
df["Price"] = df["Price"].fillna(df["Price"].mean())
return df
main_data = main_data.groupby(["Animal_Type", "Cost_Type"]).apply(fill_by_mean)
每次單獨(dú)調(diào)用 fill_by_mean() 都會(huì)看到一個(gè)如下所示的數(shù)據(jù)幀:
Pet_ID Animal_Type Cost_Type Price
11 112 Rabit Feeding NaN
34 135 Rabit Feeding 3.0
38 139 Rabit Feeding 3.0
然后它獲取價(jià)格列的平均值并使用它填充 NA 值。然后 Groupby 將所有單獨(dú)的數(shù)據(jù)幀重新連接在一起。
添加回答
舉報(bào)