我是编程新手。我试图使用scipy最小化,有几个问题,并通过他们中的大多数。
现在这是代码,但我不明白为什么我会收到此错误。
par_opt = so.minimize(fun=fun_obj, x0=par_ini, method='Nelder-Mead', args=[series_pt_cal, dt, series_caudal_cal])
答案 0 :(得分:5)
OP没有提供足够的信息,但基本上在代码的某处,它被指定为在Pandas系列对象上的数据框列(轴= 1)操作。如果代码通常有效,但偶尔会出错,请检查数据帧可能只有1行的退化情况。熊猫有一种讨厌你想要的习惯 - 它可能决定将1行数据帧减少到一个系列(例如apply()
函数;你可以在那里使用reduce=False
禁用它)。
添加一行代码来检查对象是isinstance(df, pd.DataFrame)
,还是将有问题的pandas Series转换为数据框,类似s.to_frame().T
来解决我必须处理的问题。
答案 1 :(得分:0)
在pd.DataFrame(df)
函数之前使用so.minimize
。
Pandas希望在DataFrame上运行该功能。