【问题标题】:Pandas: Replace zero and NAN values with column Mean depending on product typePandas:根据产品类型将零值和 NAN 值替换为均值列
【发布时间】:2020-08-22 04:09:21
【问题描述】:

我想用列 Mean 替换零和 NAN 值,但是,我希望代码根据产品类型(A B 或 C)对平均值进行分类

总结一下,我有一个共有 4 列的 pandas 数据框。其中一列指定 3 种产品类型之一:A、B 和 C。

每行有 3 个测量列。我想将每列的 0 和 NAN 值替换为与产品类型相关的列平均值。如下表:

因此我想编写一个语法,允许软件计算以下内容:

每个列测量值 1,2 和 3 的产品 A 平均值

每个列测量值 1,2 和 3 的产品 B 平均值

每个列测量值 1,2 和 3 的产品 C 平均值

然后用各自计算的平均值替换 nan 和 zero 列值。

对于这样的操作,我们可以使用下面这行代码:

df.fillna(df.mean(), inplace=True)

但是,这假定均值适用于列中的所有值,而不适用于另一列中定义的类别(这里是产品类型类别 A、B 和 C)

非常感谢您在这方面的帮助。谢谢

【问题讨论】:

    标签: python pandas mean


    【解决方案1】:

    让我们试试transform 和groupby

    df.fillna(df.groupby('PRODUCT TYPE').transform('mean'), inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-05
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2017-07-04
      相关资源
      最近更新 更多