我有一个逻辑驱动的标志列,我需要创建一个列,当标志为真时增加 1,当标志为假时减少 1 到零下限。
我尝试了几种不同的方法,但无法让累加器“移位”来引用流程创建的新值。我知道下面的方法无论如何都不会止步于零,但我之前只是试图解决这个概念,这是解释目标的最切中要害的例子。我是否需要 for 循环来逐行迭代?
df = pd.DataFrame(data=np.random.randint(2,size=10), columns=['flag'])
df['accum'] = 0
df['accum'] = np.where(df['flag'] == 1, df['accum'].shift(1) + 1, df['accum'].shift(1) - 1)
df['dOutput'] = [1,0,1,2,1,2,3,2,1,0] #desired output
df
慕尼黑的夜晚无繁华
相关分类