df = pd.read_csv("loc.csv",index_col=['Date'],na_values=['NA'],
parse_dates=True)
dates = pd.date_range('2010-01-01','2010-12-31')
symbols = ['AAPL','GOOG']
df1= df.ix[dates,symbols]
df1=df1.dropna(how='all')
line = [.5,0]
def min1 (df1,l ):
err= np.sum( (df1['GOOG']-(df1['AAPL']*l[0]+l[1]))**2 )
return err
结果=spo.最小化(min1,line,args=(df1),方法='SLSQP',options={'disp':True})
我收到如下错误:
^{pr2}$任何帮助都将不胜感激。谢谢!在
这个错误意味着某个变量(float或array(或list))正在索引角色中使用;也就是说,它不应该在某个地方使用。在
虽然我必须更仔细地研究您的代码,但首先吸引我注意的是
(df)
。这应该是元组,并且需要一个逗号:如果这个简单的修复不起作用,请给出更多的错误堆栈,这样我们就可以更好地了解问题发生在哪里了。在
这个跑吗?在
^{pr2}$函数的第一个参数是“free variable”,即
minimize
正在变化的变量,它从x0
值(line
)开始。当不变时,args
参数提供了附加的参数。在给定初始值
line = [.5,0]
,min1
实际上被调用(第一次但是在
min1
中,您用一个字符串索引第一个参数,就好像它是一个Pandas对象,而不是一个简单的2元素数组这可能就是产生错误的原因。在
因此,问题的根源是混淆了
min1
的参数顺序,混淆了数组和数据帧。在相关问题 更多 >
编程相关推荐