I have a dataframe and I want to calculate the mean
column up til the value points I have for True valid cases.
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
How do I exclude the False cases from the mean calculation but still carries on the previous mean. I tried this but it doesn't skip the values from the False cases. I also tried df[~df.valid] before groupby but index doesn't match the original df.
df['mean'] = df.groupby('ids').value.rolling(len(df), min_periods=1).apply(lambda x: np.mean(x)).values