使用python聚合数据

时间:2017-04-27 09:09:46

标签: python pandas count sum aggregate

我有一些数据,我希望根据某个字段求和和计数。我的数据看起来像这样

ValueSum  ID    CountObject
700       ABD   2  
300       BCE   1
800       JHO   1 
600       TVM   1

我正试图在此处计算与ID相关的唯一对象的数量,并总计与该ID相关的总值

.groupby.()

我一直在关注的是使用.count()函数以及.sum()和{{1}},但我似乎无法以正确的格式获取内容。

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用groupbyagg传递func的dict以在df的多个列上执行:

In [289]:
gp = df.groupby('ID', as_index=False).agg({'Value':sum, 'Object':'nunique'})
gp = gp.rename(columns={'Value':'ValueSum', 'Object':'ObjectCount'})
gp

Out[289]:
    ID  ValueSum  ObjectCount
0  ABD       700            2
1  BCE       300            1
2  JHO       800            1
3  TVM       600            1

这里我们传递一个dict,其中包含相应的列名和要执行的func,对于计数我们使用nunique返回唯一值的数量