def dir_df_boot(dir_df, nb=5000, par=False):
    """
    Performs a bootstrap for direction DataFrame with optional parametric bootstrap

    Parameters
    _________
    dir_df : Pandas DataFrame with columns:
        dir_dec : mean declination
        dir_inc : mean inclination
      Required for parametric bootstrap
        dir_n : number of data points in mean
        dir_k : Fisher k statistic for mean
    nb : number of bootstraps, default is 5000
    par : if True, do a parameteric bootstrap

    Returns
     _______
     BDIs:   nested list of bootstrapped mean Dec,Inc pairs
    """
    N = dir_df.dir_dec.values.shape[0]  # number of data points
    BDIs = []
    for k in range(nb):
        pdir_df = dir_df.sample(n=N, replace=True)  # bootstrap pseudosample
        pdir_df.reset_index(inplace=True)  # reset the index
        if par:  # do a parametric bootstrap
            for i in pdir_df.index:  # set through the pseudosample
                n = pdir_df.loc[i, 'dir_n']  # get number of samples/site
                # get ks for each sample
                ks = np.ones(shape=n)*pdir_df.loc[i, 'dir_k']
                # draw a fisher distributed set of directions
                decs, incs = fshdev(ks)
                di_block = np.column_stack((decs, incs))
                #  rotate them to the mean
                di_block = dodirot_V(
                    di_block, pdir_df.loc[i, 'dir_dec'], pdir_df.loc[i, 'dir_inc'])
                # get the new mean direction for the pseudosample
                fpars = fisher_mean(di_block)
                # replace the pseudo sample mean direction
                pdir_df.loc[i, 'dir_dec'] = fpars['dec']
                pdir_df.loc[i, 'dir_inc'] = fpars['inc']
        # get bootstrap mean bootstrap sample
        bfpars = dir_df_fisher_mean(pdir_df)
        BDIs.append([bfpars['dec'], bfpars['inc']])
    return BDIs
Performs a bootstrap for direction DataFrame with optional parametric bootstrap

    Parameters
    _________
    dir_df : Pandas DataFrame with columns:
        dir_dec : mean declination
        dir_inc : mean inclination
      Required for parametric bootstrap
        dir_n : number of data points in mean
        dir_k : Fisher k statistic for mean
    nb : number of bootstraps, default is 5000
    par : if True, do a parameteric bootstrap

    Returns
     _______
     BDIs:   nested list of bootstrapped mean Dec,Inc pairs