Python 在具有重置条件的行上应用此功能

Python 在具有重置条件的行上应用此功能,python,pandas,Python,Pandas,我有一列0或1的值,例如1,1,1,0,0,1,1,1,0。。。 我想计算一个新列,它在遇到0之前对连续的1进行计数,如果遇到0,它将重置计数 data = {'input': [0, 1, 1, 1, 1, 0, 0, 1, 1], 'expected output': [0, 1, 2, 3, 4, 0, 0, 1, 2]} df = pd.DataFrame.from_dict(data) df[['input', 'expected output']] #逻辑 lst_in=[

我有一列0或1的值,例如1,1,1,0,0,1,1,1,0。。。 我想计算一个新列,它在遇到0之前对连续的1进行计数,如果遇到0,它将重置计数

data = {'input': [0, 1, 1, 1, 1, 0, 0, 1, 1],  'expected output': [0, 1, 2, 3, 4, 0, 0, 1, 2]}
df = pd.DataFrame.from_dict(data)
df[['input',  'expected output']]

#逻辑
lst_in=[0,1,1,1,1,0,0,1,1]
lst_out=[]
lst_out.append(lst_in[0])#lst_out第一个元素与lst_in的第一个元素相同
x_last=lst_in[0]
y_last=0
对于[1:]中的lst_中的x:
如果x_last==0:#重置
y=x
y_last=y
elif x_last==1:#和当前y
如果x==1:
y=x+y_最后一次
elif x==0:#下一步重置
y=0
x_last=x
y_last=y
#打印(x_last,y_last)
lst_out.append(y)
打印(lst_输出)
如果我先把它转换成列表,我就可以使if工作。但是,我不知道如何使逻辑在pandas框架下工作
df.groupby(df['input'].eq(0).cumsum()).input.cumsum()