![](/img/trans.png)
[英]Pandas: Replace zero and NAN values with column Mean depending on product type
[英]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.