У меня есть кадр данных, как показано ниже:
row_no stock_name last_price Var1
1 SAIL 501.00 0
2 SAIL 501.60 23
3 SAIL 500.00 0
4 SAIL 499.10 0
5 SAIL 499.40 0
6 SAIL 499.40 0
7 SAIL 502.00 0
8 SAIL 497.95 0
9 SAIL 495.55 20
10 SAIL 496.75 0
11 SAIL 496.75 0
12 SAIL 513.00 0
13 SAIL 497.00 0
14 SAIL 497.20 0
15 SAIL 497.00 0
16 SAIL 494.00 0
17 SAIL 497.00 0
18 SAIL 497.00 0
19 SAIL 497.00 0
20 SAIL 496.60 -9
21 SAIL 497.25 0
Необходимо рассчитать Max и Min last_price, когда Var1 не равен нулю.
Когда текущий Var1 не равен нулю, Max & Minlast_price вычисляется между предыдущим ненулевым значением Var1.
Пример: для строки № 9: Max last_price рассчитывается как Max (last_price от строки 9 до строки 2) = 502 и Min last_price как Min (last_priceиз строки 9 в строку 2) = 495,55
Я хочу получить окончательный кадр данных, как показано ниже:
row_no stock_name last_price Var1 Max_LTP Min_LTP
1 SAIL 501 0 0 0 0
2 SAIL 501.6 23 501.6 501
3 SAIL 500 0 0 0 0
4 SAIL 499.1 0 0 0
5 SAIL 499.4 0 0 0
6 SAIL 499.4 0 0 0
7 SAIL 502 0 0 0 0
8 SAIL 497.95 0 0 0
9 SAIL 495.55 20 502 495.55
10 SAIL 496.75 0 0 0
11 SAIL 496.75 0 0 0
12 SAIL 513 0 0 0 0
13 SAIL 497 0 0 0 0
14 SAIL 497.2 0 0 0
15 SAIL 497 0 0 0 0
16 SAIL 494 0 0 0 0
17 SAIL 497 0 0 0 0
18 SAIL 497 0 0 0 0
19 SAIL 497 0 0 0 0
20 SAIL 496.6 -9 513 494
21 SAIL 497.25 0 0 0 0