예제 #1
0
                # weighted mean
                v = np.average(df[name].values[bi], None, np.nan_to_num(ws))
        elif wt and mode in ["q1", "q2", "q3"]:
            q = (["q1", "q2", "q3"].index(mode) + 1) * 0.25
            v = weighted_quantiles(df[name].values, [q],
                                   np.prod([df[_].values for _ in wt], 0))[0]
        elif hasattr(pd.Series, mode):
            fn = eval('pd.Series.' + mode)
            v = fn(df[name])
        elif mode == 'major':
            if df[name].any():
                v = df[name].value_counts().idxmax()

        elif mode in ["q1", "q2", "q3"]:
            q = (["q1", "q2", "q3"].index(mode) + 1) * 0.25
            v = df[name].quantile(q)
        elif mode.startswith('p') and str.isnumeric(mode[1:]):
            v = np.percentile(df[name], float(mode[1:]))

        r.append(v)
    return (r)


def main(*args):
    pd_save_dataframe(bm_breakdown(args[0], args[1], args[2], args[3]),
                      args[4])


if __name__ == "__main__" and sys.argv[0].endswith('bm_breakdown.py'):
    usage_gui(__doc__)
예제 #2
0
#!python
from _gui import usage_gui

usage_gui(None)