我有一份股票退货清单,需要查找逐年退货。
我为退货创建了一个空列表,并尝试遍历该列表以追加逐年退货。
lst = [10.82, 18.89, 52.62, 44.29, 47.15, 39.46, 92.64, 51.28, 134.52, 180.0, 173.1, 250.87, 398.79, 310.35, 675.89, 749.87]
返回= []
for i in range(len(lst)):
returns.append((lst[i+1]//lst[i])-1)
返回
IndexError
Traceback (most recent call last)
<ipython-input-37-526d26c5b374> in <module>
2
3 for i in range(len(lst)):
----> 4 returns.append((lst[i+1]//lst[i])-1)
5
6 print(returns)
IndexError: list index out of range
答案 0 :(得分:1)
此
for i in range(len(AMZN_stock_prices)):
将导致i
在0
和len(AMZN_stock_prices)-1
之间变化。当其最高值时,i+1
在列表的边界之外。使用
for i in range(len(AMZN_stock_prices)-1):
这样i+1
永远不会超出范围。
答案 1 :(得分:0)
科林,
假设您是python的新手。因此,我可能会在一个结构良好的结构内部进行操作。
import pandas as pd
import numpy as np
price_series = pd.Series(lst)
return_series = np.log(price_series/price_series.shift(1)) # assuming daily returns
rolling_one_year = return_series.rolling(252).sum()
从此处开始。出于多种原因,强烈建议您不要接触熊猫,以开始从事金融系列数据的研究。这些库在堆栈溢出方面有很多帮助。
祝你好运!