簡體   English   中英

Pandas:如何用該列的平均值替換列中的零值,對於所有具有零值的列

[英]Pandas: How to replace Zero values in a column with the mean of that column, For all columns with Zero Value

我有一個多個值為零的數據框。 我想用該列的平均值替換零值而不重復代碼。 我有名為運行時、預算和收入的列,它們都為零,我想用該列的平均值替換這些零值。

我試過一次做一列這樣的:

    print(df['budget'].mean())    
    -> 14624286.0643    
    df['budget'] = df['budget'].replace(0, 14624286.0643)    

他們是一種編寫函數的方法,不必為所有列的每個零值多次編寫代碼?

因此,這是pandas數據框,我會用mask讓所有0至np.nan ,然后fillna

df=df.mask(df==0).fillna(df.mean())

同樣我們可以直接使用替換方法來實現。 填充

df.replace(0,df.mean(axis=0),inplace=True)

方法信息:將“to_replace”中給出的值替換為“value”。

DataFrame 的值被動態替換為其他值。 這與使用.loc 或 .iloc更新不同,后者要求您指定一個位置以使用某個值進行更新。

如何遍歷所有列並替換它們?

for col in df.columns:
    val = df[col].mean()
    df[col] = df[col].replace(0, val)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM