Python 使用Pandas和Curve_fit error func()进行外推需要3个位置参数,但给出了4个
我正在使用另一篇文章中的代码来推断值。我更改了func(),使其为线性而非立方,但出现了一个错误“func()接受3个位置参数,但给出了4个” 是我得到原始代码的地方。我的问题是,当使用以下命令时,我将如何更改它,使其与线性关系一起工作:Python 使用Pandas和Curve_fit error func()进行外推需要3个位置参数,但给出了4个,python,pandas,scipy,extrapolation,Python,Pandas,Scipy,Extrapolation,我正在使用另一篇文章中的代码来推断值。我更改了func(),使其为线性而非立方,但出现了一个错误“func()接受3个位置参数,但给出了4个” 是我得到原始代码的地方。我的问题是,当使用以下命令时,我将如何更改它,使其与线性关系一起工作: guess=(0.5,0.5) 你应该可以让它运行 您拥有参数a、b,而您拥有参数a、b、c、d。 最初的猜测是针对函数中的参数a、b,而不是x 用于运行插值函数的完整代码: def func(x,a,b): return a*x + b gu
guess=(0.5,0.5)
你应该可以让它运行
您拥有参数a、b
,而您拥有参数a、b、c、d
。
最初的猜测是针对函数中的参数a、b
,而不是x
用于运行插值函数的完整代码:
def func(x,a,b):
return a*x + b
guess = (0.5,0.5,0.5)
fit_df = df.dropna()
col_params = {}
for col in fit_df.columns:
x = fit_df.index.astype(float).values
y = fit_df[col].values
params = curve_fit(func,x,y,guess)
col_params[col] = params[0]
for col in df.columns:
x = df[pd.isnull(df[col])].index.astype(float).values
df[col][x] = func(x,*col_params[col])
print("Extrapolated data")
print(df)
使用时:
guess=(0.5,0.5)
你应该可以让它运行
您拥有参数a、b
,而您拥有参数a、b、c、d
。
最初的猜测是针对函数中的参数a、b
,而不是x
用于运行插值函数的完整代码:
def func(x,a,b):
return a*x + b
guess = (0.5,0.5,0.5)
fit_df = df.dropna()
col_params = {}
for col in fit_df.columns:
x = fit_df.index.astype(float).values
y = fit_df[col].values
params = curve_fit(func,x,y,guess)
col_params[col] = params[0]
for col in df.columns:
x = df[pd.isnull(df[col])].index.astype(float).values
df[col][x] = func(x,*col_params[col])
print("Extrapolated data")
print(df)