latools/latools.py
def filter_effect(self, analytes=None, stats=['mean', 'std'], filt=True):
        """
        Quantify the effects of the active filters.
        
        Parameters
        ----------
        analytes : str or list
            Which analytes to consider.
        stats : list
            Which statistics to calculate.
        file : valid filter string or bool
            Which filter to consider. If True, applies all
            active filters.
        
        Returns
        -------
        pandas.DataFrame
            Contains statistics calculated for filtered and
            unfiltered data, and the filtered/unfiltered ratio.
        """
        if analytes is None:
            analytes = self.analytes
        if isinstance(analytes, str):
            analytes = [analytes]
        
        # calculate filtered and unfiltered stats
        self.sample_stats(['La139', 'Ti49'], stats=stats, filt=False)
        suf = self.stats.copy()
        self.sample_stats(['La139', 'Ti49'], stats=stats, filt=filt)
        sf = self.stats.copy()
        
        # create dataframe for results
        cols = []
        for s in self.stats_calced:
            cols += ['unfiltered_{:}'.format(s), 'filtered_{:}'.format(s)] 

        comp = pd.DataFrame(index=self.samples,
                            columns=pd.MultiIndex.from_arrays([cols, [None] * len(cols)]))

        # collate stats
        for k, v in suf.items():
            vf = sf[k]
            for i, a in enumerate(v['analytes']):
                for s in self.stats_calced:
                    comp.loc[k, ('unfiltered_{:}'.format(s), a)] = v[s][i,0]
                    comp.loc[k, ('filtered_{:}'.format(s), a)] = vf[s][i,0]
        comp.dropna(0, 'all', inplace=True)
        comp.dropna(1, 'all', inplace=True)
        comp.sort_index(1, inplace=True)

        # calculate filtered/unfiltered ratios
        rats = []
        for s in self.stats_calced:
            rat = comp.loc[:, 'filtered_{:}'.format(s)] / comp.loc[:, 'unfiltered_{:}'.format(s)]
            rat.columns = pd.MultiIndex.from_product([['{:}_ratio'.format(s)], rat.columns])
            rats.append(rat)
        
        # join it all up
        comp = comp.join(pd.concat(rats, 1))
        comp.sort_index(1, inplace=True)
        
        return comp.loc[:, (pd.IndexSlice[:], pd.IndexSlice[analytes])]
def filter_effect(self, analytes=None, stats=['mean', 'std'], filt=True):
        """
        Quantify the effects of the active filters.
        
        Parameters
        ----------
        analytes : str or list
            Which analytes to consider.
        stats : list
            Which statistics to calculate.
        file : valid filter string or bool
            Which filter to consider. If True, applies all
            active filters.
        
        Returns
        -------
        pandas.DataFrame
            Contains statistics calculated for filtered and
            unfiltered data, and the filtered/unfiltered ratio.
        """
        if analytes is None:
            analytes = self.analytes
        if isinstance(analytes, str):
            analytes = [analytes]
        
        # calculate filtered and unfiltered stats
        self.sample_stats(['La139', 'Ti49'], stats=stats, filt=False)
        suf = self.stats.copy()
        self.sample_stats(['La139', 'Ti49'], stats=stats, filt=filt)
        sf = self.stats.copy()
        
        # create dataframe for results
        cols = []
        for s in self.stats_calced:
            cols += ['unfiltered_{:}'.format(s), 'filtered_{:}'.format(s)] 

        comp = pd.DataFrame(index=self.samples,
                            columns=pd.MultiIndex.from_arrays([cols, [None] * len(cols)]))

        # collate stats
        for k, v in suf.items():
            vf = sf[k]
            for i, a in enumerate(v['analytes']):
                for s in self.stats_calced:
                    comp.loc[k, ('unfiltered_{:}'.format(s), a)] = v[s][i,0]
                    comp.loc[k, ('filtered_{:}'.format(s), a)] = vf[s][i,0]
        comp.dropna(0, 'all', inplace=True)
        comp.dropna(1, 'all', inplace=True)
        comp.sort_index(1, inplace=True)

        # calculate filtered/unfiltered ratios
        rats = []
        for s in self.stats_calced:
            rat = comp.loc[:, 'filtered_{:}'.format(s)] / comp.loc[:, 'unfiltered_{:}'.format(s)]
            rat.columns = pd.MultiIndex.from_product([['{:}_ratio'.format(s)], rat.columns])
            rats.append(rat)
        
        # join it all up
        comp = comp.join(pd.concat(rats, 1))
        comp.sort_index(1, inplace=True)
        
        return comp.loc[:, (pd.IndexSlice[:], pd.IndexSlice[analytes])]
def filter_effect ( self , analytes = None , stats = [ 'mean' , 'std' ] , filt = True ) : if analytes is None : analytes = self . analytes if isinstance ( analytes , str ) : analytes = [ analytes ] # calculate filtered and unfiltered stats self . sample_stats ( [ 'La139' , 'Ti49' ] , stats = stats , filt = False ) suf = self . stats . copy ( ) self . sample_stats ( [ 'La139' , 'Ti49' ] , stats = stats , filt = filt ) sf = self . stats . copy ( ) # create dataframe for results cols = [ ] for s in self . stats_calced : cols += [ 'unfiltered_{:}' . format ( s ) , 'filtered_{:}' . format ( s ) ] comp = pd . DataFrame ( index = self . samples , columns = pd . MultiIndex . from_arrays ( [ cols , [ None ] * len ( cols ) ] ) ) # collate stats for k , v in suf . items ( ) : vf = sf [ k ] for i , a in enumerate ( v [ 'analytes' ] ) : for s in self . stats_calced : comp . loc [ k , ( 'unfiltered_{:}' . format ( s ) , a ) ] = v [ s ] [ i , 0 ] comp . loc [ k , ( 'filtered_{:}' . format ( s ) , a ) ] = vf [ s ] [ i , 0 ] comp . dropna ( 0 , 'all' , inplace = True ) comp . dropna ( 1 , 'all' , inplace = True ) comp . sort_index ( 1 , inplace = True ) # calculate filtered/unfiltered ratios rats = [ ] for s in self . stats_calced : rat = comp . loc [ : , 'filtered_{:}' . format ( s ) ] / comp . loc [ : , 'unfiltered_{:}' . format ( s ) ] rat . columns = pd . MultiIndex . from_product ( [ [ '{:}_ratio' . format ( s ) ] , rat . columns ] ) rats . append ( rat ) # join it all up comp = comp . join ( pd . concat ( rats , 1 ) ) comp . sort_index ( 1 , inplace = True ) return comp . loc [ : , ( pd . IndexSlice [ : ] , pd . IndexSlice [ analytes ] ) ]
Quantify the effects of the active filters.
        
        Parameters
        ----------
        analytes : str or list
            Which analytes to consider.
        stats : list
            Which statistics to calculate.
        file : valid filter string or bool
            Which filter to consider. If True, applies all
            active filters.
        
        Returns
        -------
        pandas.DataFrame
            Contains statistics calculated for filtered and
            unfiltered data, and the filtered/unfiltered ratio.
Quantify the effects of the active filters . Parameters ---------- analytes : str or list Which analytes to consider . stats : list Which statistics to calculate . file : valid filter string or bool Which filter to consider . If True applies all active filters . Returns ------- pandas . DataFrame Contains statistics calculated for filtered and unfiltered data and the filtered / unfiltered ratio .