问题描述
我正在尝试执行以下操作: 有一个包含“Cat”和“Amount”列的数据框。我想创建另一列,只要“Cat”中的值相同,它就会将“Amount”列中值 i 和 i+1 之间的差异相加。当“Cat”中的值发生变化时,它会变回 0 并重新开始。
附上一个例子。
解决方法
您可以尝试以下操作。请忽略 cat 的 value 列和 total 我试图在 excel 中复制您的图像,但我想以下代码应该会有所帮助
cat['r']=cat.groupby('Cat').cumcount()
,
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