Pandas:根据产品类型用列平均值替换零值和 NAN 值
Pandas: Replace zero and NAN values with column Mean depending on product type
我想用列平均值替换零值和 NAN 值,但是,我希望代码根据产品类型(A B 或 C)对平均值进行分类
总而言之,我有一个 pandas 数据框,共有 4 列。其中一列指定了 3 种产品类型之一:A、B 和 C。
每行有 3 个测量列。我想用关于产品类型的列平均值替换每列的 0 和 NAN 值。 Table如下:
因此我想编写一个允许软件计算以下内容的语法:
每个列测量值 1,2 和 3 的产品 A 平均值
产品 B 每个列测量值 1,2 和 3 的平均值
每个列测量值 1,2 和 3 的产品 C 平均值
然后用相应的计算平均值替换 nan 和零列值。
对于这样的操作,我们可以使用下面这行代码:
df.fillna(df.mean(), inplace=True)
然而,这假定均值适用于列中的所有值,而不适用于另一列中定义的类别(此处为产品类型类别 A、B 和 C)
非常感谢您对此提供的帮助。谢谢
让我们尝试 transform
和 groupby
df.fillna(df.groupby('PRODUCT TYPE').transform('mean'), inplace=True)
我想用列平均值替换零值和 NAN 值,但是,我希望代码根据产品类型(A B 或 C)对平均值进行分类
总而言之,我有一个 pandas 数据框,共有 4 列。其中一列指定了 3 种产品类型之一:A、B 和 C。
每行有 3 个测量列。我想用关于产品类型的列平均值替换每列的 0 和 NAN 值。 Table如下:
因此我想编写一个允许软件计算以下内容的语法:
每个列测量值 1,2 和 3 的产品 A 平均值
产品 B 每个列测量值 1,2 和 3 的平均值
每个列测量值 1,2 和 3 的产品 C 平均值
然后用相应的计算平均值替换 nan 和零列值。
对于这样的操作,我们可以使用下面这行代码:
df.fillna(df.mean(), inplace=True)
然而,这假定均值适用于列中的所有值,而不适用于另一列中定义的类别(此处为产品类型类别 A、B 和 C)
非常感谢您对此提供的帮助。谢谢
让我们尝试 transform
和 groupby
df.fillna(df.groupby('PRODUCT TYPE').transform('mean'), inplace=True)