首页 > 解决方案 > 如何处理熊猫中的半相似行

问题描述

我想price根据不同行中的相似列familycity列进行平均,假设我有以下数据框,

df1 = [ID, name, family, city, price
        1,    a,      g,    u,    25
        2,    f,      b,    c,    20
        3,    i,      b,    c,    15
        4,    k,      b,    c,    10
        5,    r,      b,    c,    15
        6,    d,      r,    t,    20
        7,    q,      x,    s,    11]

我预期的数据框是:

df1 = [ID, name, family, city, price
        1,    a,      g,    u,    25
        2,    f,      b,    c,    15
        3,    i,      b,    c,    15
        4,    k,      b,    c,    15
        5,    r,      b,    c,    15
        6,    d,      r,    t,    20
        7,    q,      x,    s,    11]

我用过groupby,但效果不好,

shareg1 = df1[['ID','name','family','city','price']].groupby(['family','city']).mean().reset_index()`

标签: pythonpandas

解决方案


惯用伎俩

df1['avg_price']= df1[['ID','name','family','city','price']].groupby(['family','city']).price.transform('mean')

推荐阅读