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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何根據(jù)與值的輔助數(shù)據(jù)幀匹配的條件在主數(shù)據(jù)幀的列中填充 NaN,以使用多個(gè)填充值填充 NaN

如何根據(jù)與值的輔助數(shù)據(jù)幀匹配的條件在主數(shù)據(jù)幀的列中填充 NaN,以使用多個(gè)填充值填充 NaN

絕地?zé)o雙 2023-10-06 16:30:12
我需要根據(jù)groupby和mean函數(shù)創(chuàng)建的第二個(gè)數(shù)據(jù)幀在主數(shù)據(jù)框中填充 NA 值。我的原始數(shù)據(jù)框有大約 1.5K NaN 我需要填充,因此這需要大規(guī)模重現(xiàn)。我創(chuàng)建了一個(gè)假數(shù)據(jù)框,它是使用假場(chǎng)景對(duì)我的數(shù)據(jù)進(jìn)行簡(jiǎn)短、快速和骯臟的模仿。我無(wú)法與你分享我的真實(shí)數(shù)據(jù)。我的總體想法是:main_data[          (main_data["Animal_Type"] == mean_data["Animal_Type"]) &           (main_data["Cost_Type"] == mean_data["Cost_Type"])         ] = main_data["Price"].fillna(mean_data["Price"])顯然,這是行不通的,但這就是我的邏輯如何運(yùn)作的一般要點(diǎn)。我找到了[他的答案][1],但我無(wú)法將其正確應(yīng)用于我的問(wèn)題。很多答案都涉及mask或假設(shè)我的數(shù)據(jù)非常小,只有一個(gè)值可以替換我的所有 NaN。我的原始數(shù)據(jù)集中有大約 50 種不同的方法,它們與每個(gè)“成本類(lèi)型”的“動(dòng)物類(lèi)型”唯一配對(duì)。我的原始數(shù)據(jù)框大約有 30K 個(gè)觀察值,其中也充滿(mǎn)了獨(dú)特的觀察值。我可以映射,但這僅適用于單個(gè)列。我對(duì)編碼相當(dāng)陌生,所以很多其他答案對(duì)我來(lái)說(shuō)太復(fù)雜了,也無(wú)法理解和改變。主數(shù)據(jù)mean_data.head(10)   **Pet_ID Animal_Type Cost_Type   Price**0   101     Goat        Housing     6.01   102     Dog         Housing     6.02   103     Horse       Housing     NaN3   104     Horse       Housing     5.04   105     Goat        Housing     3.05   106     Dog         Feeding     3.06   107     Cat         Feeding     6.07   108     Horse       Housing     6.08   109     Hamster     Feeding     5.09   110     Horse       Feeding     3.0平均值數(shù)據(jù)    Animal_Type Cost_Type   Price0   Cat         Feeding     4.5000001   Cat         Housing     5.0000002   Chicken     Feeding     5.0000003   Chicken     Housing     4.5000004   Dog         Feeding     3.0000005   Dog         Housing     6.0000006   Goat        Feeding     5.0000007   Goat        Housing     5.0000008   Hamster     Feeding     5.2500009   Hamster     Housing     3.00000010  Horse       Feeding     3.50000011  Horse       Housing     5.66666712  Rabit       Feeding     3.00000013  Rabit       Housing     3.000000我的可重現(xiàn)代碼:random.seed(10)random.seed(10)main_data = pd.DataFrame(columns = ["Pet_ID", "Animal_Type", "Cost_Type", "Price", "Cost"])main_data["Pet_ID"] = pd.Series(list(range(101,150)))
查看完整描述

1 回答

?
ITMISS

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ù)幀重新連接在一起。


查看完整回答
反對(duì) 回復(fù) 2023-10-06
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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