piRSquared - 11 months ago 59

Python Question

consider

`pd.Series`

`s`

`import pandas as pd`

import numpy as np

s = pd.Series([np.nan, 1, np.nan, 3, np.nan])

`pd.Series([np.nan, 1, 2, 3, np.nan])`

0 NaN

1 1.0

2 2.0

3 3.0

4 NaN

dtype: float64

`np.nan`

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.

Answer Source

I do this - skipping the heading and tailing NAs:

```
s.iloc[s.first_valid_index():s.last_valid_index()+1].interpolate()
```