Данные:
day cost new_column
1 1 0
2 1 0
3 5 enter position
4 3 stay in position
5 10 stay in position
6 1 exit position
7 1 0
Привет, мне интересно, есть ли способ ссылаться на предыдущую строку в вычисляемом столбце без зацикливания и использования loc / iloc. В приведенном выше примере я хочу вычислить этот 'new_column'. Как только стоимость достигнет 5, я хочу войти в позицию. Как только я нахожусь в позиции, я хочу иметь возможность проверить следующую строку, если я уже в позиции, и проверить, что цена не равна 1. Если это так, то я остаюсь в позиции. Первая строка, в которую я попал, где стоимость равна 1, а предыдущий «new_column» - «оставаться в позиции», я хочу сделать «выход из позиции». Затем следующая строка с 1, new_column должна вернуться к нулю.
Как я теперь решаю эту проблему, перебирая каждую строку, просматривая стоимость в строке i и статус new_column в строке i-1, затем вставляя результат в new_column в строке i.
Это займет некоторое время для больших наборов данных, и я хотел бы найти более эффективный способ сделать что-то. Я посмотрел в список (map ()), но я не вижу способа сослаться на предыдущую строку, потому что я не думаю, что данные будут созданы для ссылки. Есть идеи?
Спасибо