Ejemplo n.º 1
0
def to_quantile(df, n_quantiles=5, axis=1):
    """
    Convert cross-section values to the quantile number they belong.
    Small values get small quantile numbers.
    
    Parameters
    ----------
    df : DataFrame
        index date, column symbols
    n_quantiles : int
        The number of quantile to be divided to.
    axis : int
        Axis to apply quantilize.

    Returns
    -------
    res : DataFrame
        index date, column symbols

    """
    # TODO: unnecesssary warnings
    # import warnings
    # warnings.filterwarnings(action='ignore', category=RuntimeWarning, module='py_exp')
    res_arr = numeric.quantilize_without_nan(df.values, n_quantiles=n_quantiles, axis=axis)
    res = pd.DataFrame(index=df.index, columns=df.columns, data=res_arr)
    return res
Ejemplo n.º 2
0
    def ts_quantile(self, df, window=3, n_quantiles=5):
        roll = df.rolling(window=window)

        func = lambda arr: numeric.quantilize_without_nan(
            arr, n_quantiles=n_quantiles, axis=0)[-1]
        res = roll.apply(func)
        return res
Ejemplo n.º 3
0
    def to_quantile(self, df, n_quantiles=5, axis=1, mask=None):
        """
        Convert cross-section values to the quantile number they belong.
        Small values get small quantile numbers.
        
        Parameters
        ----------
        df : DataFrame
            index date, column symbols
        n_quantiles : int
            The number of quantile to be divided to.
        axis : int
            Axis to apply quantilize.

        Returns
        -------
        res : DataFrame
            index date, column symbols

        """
        df = self._align_univariate(df)
        df = self._mask_non_index_member(df)
        df = self._mask_df(df, mask)

        # TODO: unnecesssary warnings
        # import warnings
        # warnings.filterwarnings(action='ignore', category=RuntimeWarning, module='py_exp')
        res_arr = numeric.quantilize_without_nan(df.values, n_quantiles=n_quantiles, axis=axis)
        res = pd.DataFrame(index=df.index, columns=df.columns, data=res_arr)
        return res
Ejemplo n.º 4
0
 def cond_quantile(self, df, cond, n_quantiles):
     cond = cond.fillna(0.0).astype(bool)
     df, cond = self._align_bivariate(df, cond)
     df = self._mask_non_index_member(df)
     
     res_arr = numeric.quantilize_without_nan(df[cond].values, n_quantiles=n_quantiles, axis=1)
     res = pd.DataFrame(index=df.index, columns=df.columns, data=res_arr)
     return res
Ejemplo n.º 5
0
 def ts_quantile(self, df, window=3, n_quantiles=5):
     roll = df.rolling(window=window)
 
     func = lambda arr: numeric.quantilize_without_nan(arr, n_quantiles=n_quantiles, axis=0)[-1]
     res = roll.apply(func)
     return res