【问题标题】:Divide 'count' and 'sum' inside agg function in pandas在 Pandas 的 agg 函数中除以 \'count\' 和 \'sum\'
【发布时间】:2022-10-20 16:48:45
【问题描述】:

使用 groupby 和 agg,是否有可能在同一个表达式中得到“count”除以“sum”返回?

data=pd.DataFrame({'id':[1,1,1,2,2,3,3,3,3,4, 4],
             'val':[10,11,10,13,12,15,12,9, 8, 14, 2]})

data.groupby(['id'])['val'].agg(['count','sum'])

【问题讨论】:

    标签: python pandas group-by


    【解决方案1】:

    是的,使用apply

    data.groupby(['id'])['val'].apply(lambda g: g.count()/g.sum())
    

    输出:

    id
    1    0.096774
    2    0.080000
    3    0.090909
    4    0.125000
    Name: val, dtype: float64
    

    【讨论】:

      【解决方案2】:

      利用:

      data.groupby(['id'])['val'].agg(lambda g: g.count()/g.sum())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多