def _augment_lmfit_modelresult(result):
"""Tidy data values and fitted model from `lmfit.model.ModelResult`.
"""
columns = ['x', 'data', 'best_fit', 'residual']
d = pd.DataFrame(index=range(result.ndata), columns=columns)
for col in columns[1:]:
d.loc[:, col] = getattr(result, col)
independent_vars = result.model.independent_vars
if len(independent_vars) == 1:
independent_var = independent_vars[0]
else:
msg = ('Only 1 independent variable is currently supported.\n'
'Found independent variables: %s' % str(independent_vars))
raise NotImplementedError(msg)
x_array = result.userkws[independent_var]
d.loc[:, 'x'] = x_array
if len(result.components) > 1:
comp_names = [c.name for c in result.components]
for cname, comp in zip(comp_names, result.components):
d.loc[:, cname] = comp.eval(x=d.x, **result.values)
return d.apply(pd.to_numeric, errors='ignore')
评论列表
文章目录