熊猫:如何用该列的平均值替换列中的零值,对于所有具有零值的列

新手上路,请多包涵

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

我试过像这样一次做一栏:

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

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

原文由 BobbyGee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
2 个回答

So this is pandas I will using mask make all 0 to np.nan , then fillna

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

原文由 BENY 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

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

原文由 Prathamesh Ketgale 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题