diff --git a/pandas/core/common.py b/pandas/core/common.py index 48fb75f59ac34..07b0b8da55786 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -1543,7 +1543,8 @@ def _interp_limit(invalid, limit): inds = inds[firstIndex:] result[firstIndex:][invalid] = np.interp(inds[invalid], inds[valid], - yvalues[firstIndex:][valid]) + yvalues[firstIndex:][valid], + np.nan, np.nan) if limit: result[violate_limit] = np.nan diff --git a/pandas/tests/test_generic.py b/pandas/tests/test_generic.py index 001d6f489e934..63d91a430b4c7 100644 --- a/pandas/tests/test_generic.py +++ b/pandas/tests/test_generic.py @@ -638,6 +638,12 @@ def test_interp_datetime64(self): result = df.interpolate(method='nearest') expected = Series([1., 1., 3.], index=date_range('1/1/2000', periods=3)) assert_series_equal(result, expected) + + def test_interp_trailing_nan(self): + s = Series([np.nan, 1, np.nan, 3, np.nan]) + result = s.interpolate() + expected = Series([np.nan, 1, 2, 3, np.nan]) + assert_series_equal(result, expected) def test_describe(self): _ = self.series.describe()