Pandas: segmentação em zigue-zague de dados com base em mínimos-máximos locais

Eu tenho dados de séries temporais. Gerando dados date_rng = pd.date_range('2019-01-01', freq='s', periods=400) df = pd.DataFrame(np.random.lognormal(.005, .5,size=(len(date_rng), 3)), columns=['data1', 'data2', 'data3'], index= date_rng) s = df['data1'] Quero criar uma linha em zigue-zague...