Я думаю, вам нужно использовать cummin
после инвертирования данных с помощью [::-1]
(и реверсирования порядка после), все в transform
после groupby
, например:
df['low2close'] = df.groupby('date')['price'].transform(lambda x: x[::-1].cummin()[::-1])
и дает мин от текущей строки до конца дня в ту же дату
timestamp date price endofdaytime low2close
0 2018-03-11 13:03:00 2018-03-11 20.03 2018-03-11 16:29:52 19.00
1 2018-03-11 13:08:00 2018-03-11 19.00 2018-03-11 16:29:52 19.00
2 2018-03-11 15:22:00 2018-03-11 20.11 2018-03-11 16:29:52 20.03
3 2018-03-11 16:03:00 2018-03-11 21.03 2018-03-11 16:29:52 20.03
4 2018-03-11 16:29:52 2018-03-11 20.03 2018-03-11 16:29:52 20.03
5 2018-03-12 13:03:00 2018-03-12 20.03 2018-03-12 16:29:59 19.00
6 2018-03-12 13:08:00 2018-03-12 19.00 2018-03-12 16:29:59 19.00
7 2018-03-12 16:03:00 2018-03-12 21.03 2018-03-12 16:29:59 21.03
8 2018-03-12 16:29:59 2018-03-12 22.00 2018-03-12 16:29:59 22.00