Я охотно собираюсь заполнить значение log
для каждого идентификатора всякий раз, когда вы найдете первый 1 в столбце log
Пример:
df
id log
1 0
1 1
1 0
1 0
2 1
2 0
3 1
3 0
3 1
в
id log ffil_log
1 0 0
1 1 1
1 0 1
1 0 1
2 1 1
2 0 1
3 1 1
3 0 1
3 1 1
Моя попытка:
df['ffil_log']=df.log.where(df.log==1).groupby(df.id).ffill()
Вы можете использовать cummax
и groupby
например:
df['ffil_log'] = df.groupby('id')['log'].cummax()
для каждого id, как только вы достигнете 1 в строке, это будет значение для одного после, и вы получите как ожидалось
id log ffil_log
0 1 0 0
1 1 1 1
2 1 0 1
3 1 0 1
4 2 1 1
5 2 0 1
6 3 1 1
7 3 0 1
8 3 1 1
log
содержит только 0 и 1 записей? Зачем вам нужно использоватьgroupby
если файл уже сгруппирован по этому столбцу?