def _interpolate(self, method=None, index=None, values=None,<EOL>fill_value=None, axis=<NUM_LIT:0>, limit=None,<EOL>limit_direction='<STR_LIT>', limit_area=None,<EOL>inplace=False, downcast=None, **kwargs):
inplace = validate_bool_kwarg(inplace, '<STR_LIT>')<EOL>data = self.values if inplace else self.values.copy()<EOL>if not self.is_float:<EOL><INDENT>if not self.is_integer:<EOL><INDENT>return self<EOL><DEDENT>data = data.astype(np.float64)<EOL><DEDENT>if fill_value is None:<EOL><INDENT>fill_value = self.fill_value<EOL><DEDENT>if method in ('<STR_LIT>', '<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>if not index.is_monotonic:<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>".format(method))<EOL><DEDENT><DEDENT>def func(x):<EOL><INDENT>return missing.interpolate_1d(index, x, method=method, limit=limit,<EOL>limit_direction=limit_direction,<EOL>limit_area=limit_area,<EOL>fill_value=fill_value,<EOL>bounds_error=False, **kwargs)<EOL><DEDENT>interp_values = np.apply_along_axis(func, axis, data)<EOL>blocks = [self.make_block_same_class(interp_values)]<EOL>return self._maybe_downcast(blocks, downcast)<EOL>
interpolate using scipy wrappers