熊猫:根据产品类型,将“零”和NAN值替换为“平均值”列

时间:2020-05-07 00:58:07

标签: python pandas mean

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

总而言之,我有一个熊猫数据框,共有4列。列之一指定三种产品类型之一:A,B和C。

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

因此,我想编写一种语法,使该软件可以计算以下内容:

乘积A分别用于列1,2和3的平均值

乘积B分别用于列1,2和3的平均值

乘积C分别用于列1,2和3的平均值

,然后用相应的计算平均值替换nan和0列值。 enter image description here

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

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

但这是假设平均值适用于该列中的所有值,而不是针对另一列中定义的类别(此处为产品类型类别A,B和C)

非常感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:1)

让我们尝试transformgroupby

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