Попытка условно заполнить NaN в кадре данных на основе:
1. значения в A (выполняется с помощью groupby)
2. внутри groupby (A), если значение - nan и первое, заполнить как ноль а затем заполнить (в примере A = a)
3. внутри groupby (A), если значение - nan и не первое, bfill (в примере A = b)
4. внутри groupby (A), если значение равно nan, но нет точки данных, для которой нужно следовать, заполните (A = c в примере)
Я чувствую запах тройной + лямбда, но хотел бы, чтобы это было написано с помощью pythoni c.
По сути, начальная точка будет:
df
A B
0 a NaN
1 a NaN
2 a 3.0
3 a 4.0
4 b 4.0
5 b NaN
6 b 6.0
7 b 6.0
8 c 7.0
9 c NaN
10 c NaN
И df должен стать:
df
A B
0 a 0.0
1 a 0.0
2 a 3.0
3 a 4.0
4 b 4.0
5 b 6.0
6 b 6.0
7 b 6.0
8 c 7.0
9 c 7.0
10 c 7.0