import pandas as pd #Valores de Junio 2022 TRAMOS = { 777000 :0, 1727000 :0.04, 2878000 :0.08, 4029000 :0.135, 5180000 :0.23, 6906000 :0.304, 17842000 :0.35, 99999999 :0.4} TRAMOS_REFORMA = { 777000 :0, 1727000 :0.04, 2878000 :0.08, 4030000 :0.135, 5242320 :0.26, 6331000 :0.35, 8057000 :0.40, 99999999 :0.43} def descomponer_en_tramos(sueldo_bruto, tramos=TRAMOS): """ Descompone un sueldo bruto en tramos de impuesto """ descomp = [] impuestos = [] tramo_anterior = 0 for tramo, descuento in tramos.items(): delta = min(sueldo_bruto, tramo) - tramo_anterior if delta>0: descomp.append(delta) impuestos.append(int(delta*descuento)) tramo_anterior = tramo return descomp, impuestos def get_table(sueldo_bruto, tramos=TRAMOS): """ Tabla de Impuestos por tramo """ _tramos = [0]+list(tramos.keys()) tasas = tramos.values() data = list(zip(_tramos[:-1], _tramos[1:], tasas, *descomponer_en_tramos(sueldo_bruto, tramos))) df = pd.DataFrame(data=data, columns=["Desde", "Hasta", "Tasa", "Monto sujeto a impuesto", "Impuesto"]) return df