def _calc_outliers_bounds(self, data, method, coeff, window):
        """ Calculate the lower and higher bound for outlier detection.  
        
        Parameters
        ----------
        data        : pd.DataFrame()
            Input dataframe.
        method      : str
            Method to use for calculating the lower and higher bounds.
        coeff       : int
            Coefficient to use in calculation.
        window      : int
            Size of the moving window.

        Returns
        -------
        (float, float)
            Lower and higher bound for detecting outliers.

        """
       
        if method == "std":
            lowBound = (data.mean(axis=0) - coeff * data.std(axis=0)).values[0]
            highBound = (data.mean(axis=0) + coeff * data.std(axis=0)).values[0]

        elif method == "rstd":
            rl_mean=data.rolling(window=window).mean(how=any)
            rl_std = data.rolling(window=window).std(how=any).fillna(method='bfill').fillna(method='ffill')
            
            lowBound = rl_mean - coeff * rl_std
            highBound = rl_mean + coeff * rl_std

        elif method == "rmedian":
            rl_med = data.rolling(window=window, center=True).median().fillna(
                method='bfill').fillna(method='ffill')

            lowBound =  rl_med - coeff
            highBound = rl_med + coeff

        # Coeff is multip for std and IQR or threshold for rolling median
        elif method == "iqr":
            Q1 = data.quantile(.25) # Coeff is multip for std or % of quartile
            Q3 = data.quantile(.75)
            IQR = Q3 - Q1

            lowBound = Q1 - coeff * IQR
            highBound = Q3 + coeff * IQR

        elif method == "qtl":
            lowBound = data.quantile(.005)
            highBound = data.quantile(.995)

        else:
            print ("Method chosen does not exist")
            lowBound = None
            highBound = None

        return lowBound, highBound
Calculate the lower and higher bound for outlier detection.  
        
        Parameters
        ----------
        data        : pd.DataFrame()
            Input dataframe.
        method      : str
            Method to use for calculating the lower and higher bounds.
        coeff       : int
            Coefficient to use in calculation.
        window      : int
            Size of the moving window.

        Returns
        -------
        (float, float)
            Lower and higher bound for detecting outliers.