只要来自另一列的值相同,则对列中的值求和

问题描述

我正在尝试执行以下操作: 有一个包含“Cat”和“Amount”列的数据框。我想创建另一列,只要“Cat”中的值相同,它就会将“Amount”列中值 i 和 i+1 之间的差异相加。当“Cat”中的值发生变化时,它会变回 0 并重新开始。

附上一个例子。

enter image description here

enter image description here

解决方法

您可以尝试以下操作。请忽略 cat 的 value 列和 total 我试图在 excel 中复制您的图像,但我想以下代码应该会有所帮助

cat['r']=cat.groupby('Cat').cumcount()

enter image description here

,

试试这个作为你的最终解决方案Final  Results

cat['Col_count']=cat.groupby('Cat').cumcount()
cat['sum']=cat.groupby('Cat')['Amount'].cumsum()
cat['min_val']=np.where(cat['Col_count']==0,cat['sum'],0)
cat['min2']=cat.groupby('Cat')['min_val'].cumsum()
cat['Cal']=cat['Amount']-cat['min2']
cat