@Appender((_shared_docs['interpolate'] % _shared_doc_kwargs))
def interpolate(self, method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None, downcast=None, **kwargs):
    '\n        Interpolate values according to different methods.\n        '
    inplace = validate_bool_kwarg(inplace, 'inplace')
    if (self.ndim > 2):
        raise NotImplementedError('Interpolate has not been implemented on Panel and Panel 4D objects.')
    if (axis == 0):
        ax = self._info_axis_name
        _maybe_transposed_self = self
    elif (axis == 1):
        _maybe_transposed_self = self.T
        ax = 1
    else:
        _maybe_transposed_self = self
    ax = _maybe_transposed_self._get_axis_number(ax)
    if (_maybe_transposed_self.ndim == 2):
        alt_ax = (1 - ax)
    else:
        alt_ax = ax
    if (isinstance(_maybe_transposed_self.index, MultiIndex) and (method != 'linear')):
        raise ValueError('Only `method=linear` interpolation is supported on MultiIndexes.')
    if (_maybe_transposed_self._data.get_dtype_counts().get('object') == len(_maybe_transposed_self.T)):
        raise TypeError('Cannot interpolate with all object-dtype columns in the DataFrame. Try setting at least one column to a numeric dtype.')
    if (method == 'linear'):
        index = np.arange(len(_maybe_transposed_self._get_axis(alt_ax)))
    else:
        index = _maybe_transposed_self._get_axis(alt_ax)
    if isna(index).any():
        raise NotImplementedError('Interpolation with NaNs in the index has not been implemented. Try filling those NaNs before interpolating.')
    data = _maybe_transposed_self._data
    new_data = data.interpolate(method=method, axis=ax, index=index, values=_maybe_transposed_self, limit=limit, limit_direction=limit_direction, limit_area=limit_area, inplace=inplace, downcast=downcast, **kwargs)
    if inplace:
        if (axis == 1):
            new_data = self._constructor(new_data).T._data
        self._update_inplace(new_data)
    else:
        res = self._constructor(new_data).__finalize__(self)
        if (axis == 1):
            res = res.T
        return res
Interpolate values according to different methods.
@Appender((_shared_docs['interpolate'] % _shared_doc_kwargs))
def interpolate(self, method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None, downcast=None, **kwargs):
    '\n        \n        '
    inplace = validate_bool_kwarg(inplace, 'inplace')
    if (self.ndim > 2):
        raise NotImplementedError('Interpolate has not been implemented on Panel and Panel 4D objects.')
    if (axis == 0):
        ax = self._info_axis_name
        _maybe_transposed_self = self
    elif (axis == 1):
        _maybe_transposed_self = self.T
        ax = 1
    else:
        _maybe_transposed_self = self
    ax = _maybe_transposed_self._get_axis_number(ax)
    if (_maybe_transposed_self.ndim == 2):
        alt_ax = (1 - ax)
    else:
        alt_ax = ax
    if (isinstance(_maybe_transposed_self.index, MultiIndex) and (method != 'linear')):
        raise ValueError('Only `method=linear` interpolation is supported on MultiIndexes.')
    if (_maybe_transposed_self._data.get_dtype_counts().get('object') == len(_maybe_transposed_self.T)):
        raise TypeError('Cannot interpolate with all object-dtype columns in the DataFrame. Try setting at least one column to a numeric dtype.')
    if (method == 'linear'):
        index = np.arange(len(_maybe_transposed_self._get_axis(alt_ax)))
    else:
        index = _maybe_transposed_self._get_axis(alt_ax)
    if isna(index).any():
        raise NotImplementedError('Interpolation with NaNs in the index has not been implemented. Try filling those NaNs before interpolating.')
    data = _maybe_transposed_self._data
    new_data = data.interpolate(method=method, axis=ax, index=index, values=_maybe_transposed_self, limit=limit, limit_direction=limit_direction, limit_area=limit_area, inplace=inplace, downcast=downcast, **kwargs)
    if inplace:
        if (axis == 1):
            new_data = self._constructor(new_data).T._data
        self._update_inplace(new_data)
    else:
        res = self._constructor(new_data).__finalize__(self)
        if (axis == 1):
            res = res.T
        return res