Вот как выглядит мой фрейм данных.Expected_Output
- мой желаемый столбец:
Group Signal Ready Value Expected_Output
0 1 0 0 3 NaN
1 1 0 1 72 NaN
2 1 0 0 0 NaN
3 1 4 0 0 72.0
4 1 4 0 0 72.0
5 1 4 0 0 72.0
6 2 0 0 0 NaN
7 2 7 0 0 NaN
8 2 7 0 0 NaN
9 2 7 0 0 NaN
Если Signal > 1
, то я пытаюсь получить самый последний ненулевой Value
в предыдущих строках в пределах Group
, где Ready = 1
,Итак, в строке 3 Signal = 4
, поэтому я хочу получить самый последний ненулевой Value of 72
из строки 1, где Ready = 1
.
Как только я смогу получить значение, я могу сделать df.groupby(['Group','Signal']).Value.transform('first')
как сигналы появляются неоднократно, как 444, но не уверены, как получить Value
.