2016-10-12 101 views
3

我有數據有一個分類列,將數據和其他列在數據框df中這樣分組。如何求和按熊貓分類列分組的值?

id  subid  value 
1  10   1.5 
1  20   2.5 
1  30   7.0 
2  10   12.5 
2  40   5 

我需要的是一個爲每種id內的每個subid平均值列。例如df可能是:

id  subid  value  id_sum proportion 
1  10   1.5  11.0  0.136 
1  20   2.5  11.0  0.227 
1  30   7.0  11.0  0.636 
2  10   12.5  17.5  0.714 
2  40   5   17.5  0.285 

現在,我試着做得到id_sum柱:

df['id_sum'] = df.groupby('id')['value'].sum() 

但這似乎並不如設想的那麼順利。我的最終目標是獲得proportion列。得到這個的正確方法是什麼?

回答

4

在這裏我們去

df['id_sum'] = df.groupby('id')['value'].transform('sum') 
df['proportion'] = df['value']/df['id_sum'] 
+1

哇感謝!那很簡單。由於某種原因,沒有想到「轉換」。 – sfactor