我有一些数据,我希望根据某个字段求和和计数。我的数据看起来像这样
ValueSum ID CountObject
700 ABD 2
300 BCE 1
800 JHO 1
600 TVM 1
我正试图在此处计算与ID相关的唯一对象的数量,并总计与该ID相关的总值
.groupby.()
我一直在关注的是使用.count()
函数以及.sum()
和{{1}},但我似乎无法以正确的格式获取内容。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
您可以使用groupby
和agg
传递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
返回唯一值的数量