File tree Expand file tree Collapse file tree 2 files changed +15
-7
lines changed Expand file tree Collapse file tree 2 files changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -3180,14 +3180,15 @@ def interpolate(self, method='linear'):
31803180 invalid = isnull (values )
31813181 valid = - invalid
31823182
3183- firstIndex = valid .argmax ()
3184- valid = valid [firstIndex :]
3185- invalid = invalid [firstIndex :]
3186- inds = inds [firstIndex :]
3187-
31883183 result = values .copy ()
3189- result [firstIndex :][invalid ] = np .interp (inds [invalid ], inds [valid ],
3190- values [firstIndex :][valid ])
3184+ if valid .any ():
3185+ firstIndex = valid .argmax ()
3186+ valid = valid [firstIndex :]
3187+ invalid = invalid [firstIndex :]
3188+ inds = inds [firstIndex :]
3189+
3190+ result [firstIndex :][invalid ] = np .interp (
3191+ inds [invalid ], inds [valid ], values [firstIndex :][valid ])
31913192
31923193 return Series (result , index = self .index , name = self .name )
31933194
Original file line number Diff line number Diff line change @@ -4007,6 +4007,13 @@ def test_interpolate(self):
40074007 # try time interpolation on a non-TimeSeries
40084008 self .assertRaises (Exception , self .series .interpolate , method = 'time' )
40094009
4010+ def test_interpolate_corners (self ):
4011+ s = Series ([np .nan , np .nan ])
4012+ assert_series_equal (s .interpolate (), s )
4013+
4014+ s = Series ([]).interpolate ()
4015+ assert_series_equal (s .interpolate (), s )
4016+
40104017 def test_interpolate_index_values (self ):
40114018 s = Series (np .nan , index = np .sort (np .random .rand (30 )))
40124019 s [::3 ] = np .random .randn (10 )
You can’t perform that action at this time.
0 commit comments