Попробуйте это:
Пример данных: perf = pd.DataFrame({'price':[100.1, 1.1, 3.5, 400, 3.1, 651, 39]})
Добавлен код:
test['peaks'] = False
test['valleys'] = False
test['peaks'].loc[peaks] = True
test['valleys'].loc[valleys] = True
Пример вывода:
index price peaks valleys
0 0 100.1 False False
1 1 1.1 False True
2 2 3.5 False False
3 3 400.0 True False
4 4 3.1 False True
5 5 651.0 True False
6 6 39.0 False False
Если вы хотите добавить столбец с последним пиком и долиной:
test['last_peak'] = test.loc[peaks[0][-1]].price
test['last_valley'] = test.loc[valleys[0][-1]].price
Выход:
index price peaks valleys last_peak last_valley
0 0 100.1 False False 651.0 3.1
1 1 1.1 False True 651.0 3.1
2 2 3.5 False False 651.0 3.1
3 3 400.0 True False 651.0 3.1
4 4 3.1 False True 651.0 3.1
5 5 651.0 True False 651.0 3.1
6 6 39.0 False False 651.0 3.1
Это то, что вы хотите?