def compute(
        self, start: int = None, end: int = None,
        steps_id: list = None
    ) -> pd.DataFrame:
        """

        :param start:
        :param end:
        :param steps_id:
        :return:

        """
        dset = self.parent.parent.data[self.parent.iid]

        try:
            index_col = dset.attrs['index']
        except:
            index_col = None

        keys = tuple(
            k for k in dset.dtype.names[:]
            if k not in [index_col]
        )

        params = {}
        if index_col is not None:
            params['index'] = dset[index_col]

        df = pd.DataFrame(dset[keys], **params)

        for k in df.keys():
            if df[k].dtype == pd.api.types.pandas_dtype('O'):
                df[k] = df[k].str.decode("utf-8")
                df[k].replace(
                    dset.attrs['null_string'], np.nan, inplace=True
                )

        steps = self.parent.attr_load(attr='steps', default=[])

        if steps_id is not None:
            _steps = [s for i, s in enumerate(steps) if i in steps_id]
        else:
            _steps = steps[start:end]

        for step in _steps:
            df = self.expr(df, step)

        return df
def compute ( self , start : int = None , end : int = None , steps_id : list = None ) -> pd . DataFrame : dset = self . parent . parent . data [ self . parent . iid ] try : index_col = dset . attrs [ 'index' ] except : index_col = None keys = tuple ( k for k in dset . dtype . names [ : ] if k not in [ index_col ] ) params = { } if index_col is not None : params [ 'index' ] = dset [ index_col ] df = pd . DataFrame ( dset [ keys ] , ** params ) for k in df . keys ( ) : if df [ k ] . dtype == pd . api . types . pandas_dtype ( 'O' ) : df [ k ] = df [ k ] . str . decode ( "utf-8" ) df [ k ] . replace ( dset . attrs [ 'null_string' ] , np . nan , inplace = True ) steps = self . parent . attr_load ( attr = 'steps' , default = [ ] ) if steps_id is not None : _steps = [ s for i , s in enumerate ( steps ) if i in steps_id ] else : _steps = steps [ start : end ] for step in _steps : df = self . expr ( df , step ) return df
:param start:
        :param end:
        :param steps_id:
        :return: