def calculate_percentage_single_row(row, truncate_out=True): for k, v in PPR_COLS_PERCENTAGE_RELATIONS.items(): num = row[v[0]] den = row[v[1]] extra_number = v[2] if len(v) > 2 else None row[k] = calculate_percent(num, den, extra_number, truncate_out) # calculation is done on decimal values # and then round off to nearest integer row[v[0]] = round(row[v[0]]) row[v[1]] = round(row[v[1]]) return row
def __calculate_percentage_in_rows(self, row, all_cols): for k, v in PPR_COLS_PERCENTAGE_RELATIONS.items(): num = row[all_cols.index(v[0])] den = row[all_cols.index(v[1])] extra_number = v[2] if len(v) > 2 else None row[all_cols.index(k)] = calculate_percent(num, den, extra_number) # calculation is done on decimal values # and then round off to nearest integer row[all_cols.index(v[0])] = round(row[all_cols.index(v[0])]) row[all_cols.index(v[1])] = round(row[all_cols.index(v[1])]) return row
def calculate_percentage_single_row(row, truncate_out=True): for k, v in PPR_COLS_PERCENTAGE_RELATIONS.items(): num = row.get(v[0], 0) den = row.get(v[1], 1) # to avoid 0/0 division error extra_number = v[2] if len(v) > 2 else None row[k] = calculate_percent(num, den, extra_number, truncate_out) # calculation is done on decimal values # and then round off to nearest integer # and if not present defaulting them to zero row[v[0]] = round(row.get(v[0], 0)) row[v[1]] = round(row.get(v[1], 0)) return row