У меня есть дата:
data=[[0,1,5],
[0,1,6],
[0,0,8],
[0,0,10],
[0,1,12],
[0,0,14],
[0,1,16],
[0,1,18],
[1,0,2],
[1,1,0],
[1,0,1],
[1,0,2]]
df = pd.DataFrame(data,columns=['KEY','COND','VAL'])
Для RES1 я хочу создать переменную счетчика RES, где COND == 1. Значение RES для первого KEY группы остается таким же, как VAL (Могу ли я использовать cumcount () каким-то образом).
Для RES2, тогда я просто хочу заполнить пропущенные значения в качестве предыдущего значения. (df.fillna(method='ffill'))
, я думаю ...
KEY COND VAL RES1 RES2
0 0 1 5 5 5
1 0 1 6 6 6
2 0 0 8 6
3 0 0 10 6
4 0 1 12 7 7
5 0 0 14 7
6 0 1 16 8 8
7 0 1 18 9 9
8 1 0 2 2 2
9 1 1 0 3 3
10 1 0 1 3
11 1 0 2 3
Цель - найти векторизованное решение, наиболее оптимальное для миллионов строк.