Pandas interpolate() backwards in dataframe
It seems it works only with parameter limit
see docs [In 47]:
Add a limit_direction keyword argument that works with limit to enable interpolate to fill NaN values forward, backward, or both (GH9218, GH10420, GH11115)
records = pd.DataFrame({'name': {0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5: 'a', 6: 'a', 7: 'a', 8: 'a', 9: 'a'}, 'days': {0: 0.0, 1: np.nan, 2: np.nan, 3: np.nan, 4: 4.0, 5: 5.0, 6: np.nan, 7: np.nan, 8: np.nan, 9: 9.0}}, columns=['name','days'])print (records) name days0 a 0.01 a NaN2 a NaN3 a NaN4 a 4.05 a 5.06 a NaN7 a NaN8 a NaN9 a 9.0
#by default limit_direction='forward'records['forw'] = records['days'].interpolate(method='linear', limit=1)records['backw'] = records['days'].interpolate(method='linear', limit_direction='backward', limit=1)records['both'] = records['days'].interpolate(method='linear', limit_direction='both', limit=1)print (records) name days forw backw both0 a 0.0 0.0 0.0 0.01 a NaN 1.0 NaN 1.02 a NaN NaN NaN NaN3 a NaN NaN 3.0 3.04 a 4.0 4.0 4.0 4.05 a 5.0 5.0 5.0 5.06 a NaN 6.0 NaN 6.07 a NaN NaN NaN NaN8 a NaN NaN 8.0 8.09 a 9.0 9.0 9.0 9.0