使用与另一列python

时间:2018-03-17 10:42:20

标签: python-3.x pandas

enter image description here

以上数据框有9个不同类别的9个产品。这些产品的特性是质量和口味。

某些产品中的属性读取0,这是错误的,必须由其类的模式替换。如下图

enter image description here

我根据其模式对其进行了分组 data.groupby([' class'])[' quality',' taste']。agg(lambda x:x.value_counts()。index [0] )

但请帮助我用对应于其类

的模式替换0

1 个答案:

答案 0 :(得分:1)

您可以将transformreplace

一起使用
data[['quality','taste']] = data.groupby(['class'])['quality','taste'].transform(lambda x: x.replace(0, x.value_counts().index[0]))

或使用自定义功能:

def f(x):
    a = x.value_counts().index[0]
    m = x == 0
    x[m] = a
    return x

data[['quality','taste']] = data.groupby(['class'])['quality','taste'].transform(f)