У меня есть фрейм данных, и я хочу вычислить столбец mean
до тех пор, пока у меня не появятся значения для истинных действительных случаев.
ids valid value mean (target output)
1 False 0.1 0
1 True 0.2 0.2
1 True 0.4 0.3
2 True 0.1 0.1
2 False 0.5 0.1
2 True 0.3 0.2
3 True 0.1 0.1
3 True 0.1 0.1
3 False 0.5 0.1
3 False 0.9 0.1
Как исключить ложные случаи из вычисления среднего значения, но все еще продолжает предыдущее среднее. Я пробовал это, но это не пропускает значения из ложных случаев. Я также пробовал использовать df [~ df.valid] перед групповым, но индекс не соответствует исходному df.
df['mean'] = df.groupby('ids').value.rolling(len(df), min_periods=1).apply(lambda x: np.mean(x)).values