2017-04-27 109 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