Я хотел бы реализовать эту логику "пересечения порога" (из-за отсутствия лучшего термина):
- Начните со столбца
num
и столбца switch
, установленного в 1.
- Когда
num
падает (или проходит) на определенную lower_bound
, поверните switch
в 0.
- Держите
switch
на 0, пока num
не достигнет (или не превысит) upper_bound
, после чего switch
вернется к 1.
Для иллюстрации приведем настройки с lower_bound
3 и upper_bound
6.
df = pd.DataFrame([6, 5, 3, 2, 4, 5, 6, 3, 7, 5], columns=['num'])
df['switch'] = 1
А вот мой желаемый вывод.
num switch
0 6 1
1 5 1
2 3 0
3 2 0
4 4 0
5 5 0
6 6 1
7 3 0
8 7 1
9 5 1
Конечно, можно легко выполнить итерацию, но я ищу некоторые идеи векторизованного подхода (numpy / pandas). Спасибо.