熊猫数据帧遍历行和总和



我有这个熊猫数据帧:

 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 使用两倍糖)。

我想创建一个额外的列,其中包含权重百分比,然后使用两次的成分的总和(请参阅上面的示例)。

我试图为这个问题制作一个 for 循环,但没有成功。有人有想法吗?

groupbytransform sum一起使用:

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

最新更新