2017-04-27 110 views
1

我有一些数据,我想根据某个字段进行求和和计数。我的数据是这样的使用python汇总数据

Value ID Object 
100 ABD Type1 
200 ABD Type1 
400 ABD Type2 
200 BCE Type1 
100 BCE Type1 
800 JHO Type3 
600 TVM Type4 

,我试图去这个地方我已经算的相关的ID 独特对象的数量,并且还总结出的总价值也涉及到该ID

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

我一直在看使用.groupby.()功能与.count().sum()但我似乎无法得到正确的格式的东西。

任何帮助,非常感谢。

谢谢!

+1

你使用'pandas'? – 2017-04-27 09:11:18

+1

什么是你的输入,文本文件,数据帧,原始字符串? – RomanPerekhrest

回答

1

您可以通过funcs中的字典使用groupbyagg对您的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 

下面我们通过与相应的列名和FUNC一个字典来执行,对于计数我们使用nunique它返回的唯一值的数量

+0

谢谢,这真的很有帮助。唯一的不是统计唯一记录的数量,而是统计总数。 – Taylrl

+0

对不起,应该是'nunique'见更新 – EdChum