2016-05-26 175 views
0

我有這個大熊貓據幀:熊貓據幀遍歷行和

recipe_name ingredient_group  weight% 
pudding  milk      0.60 
pudding 2  sugar     0.10 
pudding 2  sugar     0.70 
pudding 2  milk      0.30 
pudding 3  egg      0.20 

我想一個熊貓數據幀是這樣的:

recipe_name ingredient_group  weight%  new_column 
pudding  milk      0.60  0.60 
pudding 2  sugar     0.10  0.80 (0.1+0.7) 
pudding 2  sugar     0.70  0.80 (0.1+0.7) 
pudding 2  milk      0.30  0.30 
pudding 3  egg      0.20  0.20 

的問題是,有一些使用的食譜相同的成分多次(例如布丁2使用2次糖)。

我想用重量%創建一個額外的列,然後用兩次使用的成分的總和(參見上面的示例)。

我試圖爲這個問題做一個循環,但我沒有成功。任何人的想法?

+0

你能解釋一下您的分組標準 – EdChum

+0

請編輯成你的問題不是作爲一個評論 – EdChum

+0

是不是更清晰這個樣子? – Papie

回答

4

使用groupbytransformsum

df['accumulated weight'] = df.groupby(['name','group'])['weight'].transform(sum) 
print (df) 
    name  group weight accumulated weight 
0 Appie elephant  60     60 
1 Henry  tiger  50     120 
2 Henry  tiger  70     120 
3 Laura  cow  30     30 
4 Laura  tiger  20     20 
+0

非常感謝jezrael!你幫了我很多! – Papie