consider pd.Series
s
import pandas as pd
import numpy as np
s = pd.Series([np.nan, 1, np.nan, 3, np.nan])
How do I interpolate to get:
pd.Series([np.nan, 1, 2, 3, np.nan])
0 NaN
1 1.0
2 2.0
3 3.0
4 NaN
dtype: float64
note: I want the first and last np.nan
to remain
I only want to fill in values when I have values on both sides to do the the interpolation.
In other words, I want to interpolate, not extrapolate.
I do this - skipping the heading and tailing NAs:
s.iloc[s.first_valid_index():s.last_valid_index()+1].interpolate()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With