I have a dataframe df with float values in column A. I want to add another column B such that:
B[0] = A[0]for
i > 0...B[i] = if(np.isnan(A[i])) then A[i] else Step3B[i] = if(abs((B[i-1] - A[i]) / B[i-1]) < 0.3) then B[i-1] else A[i]
Sample dataframe df can be generated as given below
import numpy as np
import pandas as pd
df = pd.DataFrame(1000*(2+np.random.randn(500, 1)), columns=list('A'))
df.loc[1, 'A'] = np.nan
df.loc[15, 'A'] = np.nan
df.loc[240, 'A'] = np.nan
df.loc[241, 'A'] = np.nan