首页 > 解决方案 > Pandas:如何用该列的平均值替换列中的零值,对于所有具有零值的列

问题描述

我有一个多个值为零的数据框。我想用该列的平均值替换零值而不重复代码。我有名为运行时、预算和收入的列都为零,我想用该列的平均值替换这些零值。

我曾尝试一次做一列,如下所示:

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

他们是一种编写函数的方法,不必为所有列的每个零值多次编写代码吗?

标签: pythonpandas

解决方案


同样我们可以直接使用replace方法来实现。无填充

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

方法信息:将“to_replace”中给出的值替换为“value”。

DataFrame 的值被动态替换为其他值。这与使用.loc 或 .iloc进行更新不同,后者要求您指定要使用某个值更新的位置。


推荐阅读