这是一种蛮力方法。可能有些更优雅的方法,但是您可以像这样显式地遍历行:
df = pd.DataFrame([0, -1, -1, -1, 0 , 0, 0, 1, 0])
df.columns = ['A']
df['B'] = df['A']
# loop here
for i in range(1,len(df)):
if df.A[i] == 0 and df.B[i-1] == -1:
df.B[i] = -1
else:
df.B[i] = df.A[i]
这为您提供了您想要的结果:
>>> df['B']
0 0
1 -1
2 -1
3 -1
4 -1
5 -1
6 -1
7 1
8 0