def get_tiers(dfr, tiers_col, tiers_map, tiers_map_kval, verbose): "Extract column of tiers and replace its data by mapping names if provided" tiers = dfr.loc[:, tiers_col] if tiers_map: mdfr, _ = read_data(tiers_map, verbose, False) kcol = tiers_map_kval.split(',')[0] vcol = tiers_map_kval.split(',')[1] if verbose: print("Reading tier mapping file %s, id col: %s, name col: %s" % (tiers_map, kcol, vcol)) mkeys = mdfr.loc[:, kcol].tolist() mvals = mdfr.loc[:, vcol].tolist() replc = dict(zip(mkeys, mvals)) tiers = tiers.replace(replc).tolist() return tiers
def checker_with_tiers(predictions, real_values, probabilities, fin, scorer, tiers_col, tiers_map, tiers_map_kval, plainout, verbose): "Map validation data with tiers extracted from fin and check each tier seprately" dfr, _ = read_data(fin, verbose, False) tiers = get_tiers(dfr, tiers_col, tiers_map, tiers_map_kval, verbose) tiers_pred = dataframe2tiers(tiers, predictions) tiers_real = dataframe2tiers(tiers, real_values) if probabilities: tiers_prob = dataframe2tiers(tiers, probabilities) if plainout: print("tier," + scorer) for tier in sorted(tiers_pred.keys()): if probabilities: checker(tiers_pred[tier], tiers_real[tier], tiers_prob[tier], scorer, verbose, plainout, tier) else: checker(tiers_pred[tier], tiers_real[tier], None, scorer, verbose, plainout, tier)
def main(): optmgr = OptionParser() opts, _ = optmgr.options() dfr, comp = read_data(opts.fin, opts.verbose) dfr = change_data(dfr, opts.lineno, opts.col, opts.newvalue) write_data(dfr, opts.fout, comp)