【发布时间】:2014-01-27 01:25:35
【问题描述】:
试试这个代码:
f2 = []
for i in symb_list:
f2.append(earnings_vola(i))
给出索引超出范围错误。 symb_list 示例:
symb_list
Out[143]:
['MTMC',
'ANCI',
'TPLM',
'BERK',
'DGI',
'QLTY',
'GST',
'AGEN',
'NURO',
earnings_vola(i) 返回浮点数
UPD。对不起,我是新用户。
def earnings_vola (symbol):
price_b = marketdata.ext.load_metotron('%s'%symbol)
price = price_b.sort()
d = pickle.load(open('/home/mad/Appr/data_%s.pickle'%(symbol), 'rb'))
df = h.to_df(d)
if df['timetype'][2]=='After Close':
price['VOLA'] = (price.shift(-1)['C']-price['C'])/price['C']*100
else:
price['VOLA'] = (price['C']-price.shift(+1)['C'])/price['C']*100
x1 = pa.Series(sorted(df['Date_p']))
px = price.reindex(x1, method='ffill')
avg_vola = np.mean(px['VOLA'])
return avg_vola
UPD2
> IndexError Traceback (most recent call
> last) <ipython-input-144-f3de6042c223> in <module>()
> 1 f2 = []
> 2 for i in symb_list:
> ----> 3 f2.append(earnings_vola(i))
>
> <ipython-input-123-96f164ec1ad9> in earnings_vola(symbol)
> 4 d = pickle.load(open('/home/mad/Appr/data_%s.pickle'%(symbol), 'rb'))
> 5 df = h.to_df(d)
> ----> 6 if df['timetype'][2]=='After Close':
> 7 price['VOLA'] = (price.shift(-1)['C']-price['C'])/price['C']*100
> 8 else:
>
> /usr/local/lib/python2.7/dist-packages/pandas/core/series.pyc in
> __getitem__(self, key)
> 616 def __getitem__(self, key):
> 617 try:
> --> 618 return self.index.get_value(self, key)
> 619 except InvalidIndexError:
> 620 pass
>
> /usr/local/lib/python2.7/dist-packages/pandas/core/index.pyc in
> get_value(self, series, key)
> 728
> 729 try:
> --> 730 return tslib.get_value_box(series, key)
> 731 except IndexError:
> 732 raise
>
> /usr/local/lib/python2.7/dist-packages/pandas/tslib.so in
> pandas.tslib.get_value_box (pandas/tslib.c:8534)()
>
> /usr/local/lib/python2.7/dist-packages/pandas/tslib.so in
> pandas.tslib.get_value_box (pandas/tslib.c:8378)()
>
> IndexError: index out of bounds
**UPD3 结果收益_vola(symbol)函数示例:
earnings_vola(symbol='MSFT')
0.080011249349832989**
我需要迭代符号列表(上面的示例)并在列表中获取所有结果
【问题讨论】:
-
什么是
earnings_vola? -
抛出异常的是
earnings_vola(i)。该函数中有什么,完整回溯是什么。 -
请注意 Python 会抛出
IndexError用于列表,而不是 index out of bounds.. 这让我非常好奇earning_vola()可能是什么.. -
请在这里写下你的完整代码。
earing_vola是什么? -
请提供实际的回溯以及实际的代码。几乎可以肯定,该异常来自该
earnings_vola函数内部的某些代码,或者该函数调用的其他代码。回溯会告诉你(或者至少告诉我们,如果你不明白的话)它发生在哪个函数的哪一行。然后,如果你已经向我们展示了相关代码,我们就可以开始调试它了。