Ajustar una curva al límite de un diagrama de dispersión

Estoy tratando de ajustar una curva al límite de un diagrama de dispersión.Ver esta imagen como referencia.

Ya he logrado un ajuste con el siguiente código (simplificado). Corta el marco de datos en pequeñas tiras verticales, y luego encuentra el valor mínimo en esas tiras de anchowidthignorandonans. (La función está disminuyendo monotónicamente).

def func(val):
    """ returns some function of 'val'"""
    return val * 2

for i in range(0, max_val, width)):
    _df = df[(df.val > i) & (df.val < i + width)] # vertical slice
    if np.isnan(np.min(func(_df.val)):            # ignore nans
        continue
    xs.append(i + width)                         
    ys.append(np.min(func(_df.val)))

Entonces estoy haciendo el ajuste conscipy.optimize.curve_fit. Mi pregunta es: ¿hay una forma más natural o pitónica de hacer esto? ¿Hay alguna forma de aumentar la precisión? (por ejemplo, ¿dando un mayor peso a las áreas del diagrama de dispersión con una mayor densidad de puntos?)

Respuestas a la pregunta(2)

Su respuesta a la pregunta