df = pd.DataFrame(np.random.randint(0,2,100), columns=['TossResults']) # random win(0) / lose (1) df['Steps'] = (df['TossResults'].cumsum()*df['TossResults']).diff() df['Edges'] = df['Steps']<0 df['Edges_Shift'] = df['Steps'].shift(1)