熊猫对不同大小的行中的值求和

时间:2020-05-20 15:22:13

标签: python excel pandas dataframe

我有一个数据框,其中包含用于许多不同“产品编号”的多个值。我试图对这些值求和并将结果直接写到“产品编号”的第一个实例旁边的新列中。有关数据框,请参见下文。仅供参考,此数据框代表我已经在python中创建的更大数据框的摘要。

╔═════════════════════════════════════════════╗
║ product number     value         NEW COLUMN ║
╠═════════════════════════════════════════════╣
║ 1                  3             9          ║
║ 1                  2                        ║
║ 1                  4                        ║
║ 2                  1             7          ║
║ 2                  6                        ║
║ 4                  2             9          ║
║ 4                  1                        ║
║ 4                  2                        ║
║ 4                  4                        ║
╚═════════════════════════════════════════════╝

1 个答案:

答案 0 :(得分:1)

您可以使用groupby().transform('sum')在所有位置上创建新列。然后使用duplicated删除重复项:

df['NEW COLUMN'] = (df.groupby('product number')
                      ['value'].transform('sum')
                     .mask(df['product number'].duplicated())
                   )

输出:

   product number  value  NEW COLUMN
0               1      3         9.0
1               1      2         NaN
2               1      4         NaN
3               2      1         7.0
4               2      6         NaN
5               4      2         9.0
6               4      1         NaN
7               4      2         NaN
8               4      4         NaN