Python 股票价格回报

Python 股票价格回报,python,Python,我有一份股票回报清单,需要找到一年比一年的回报 我已经为退货创建了一个空列表,并尝试在列表上进行迭代,以便为逐年退货追加 lst=[10.82,18.89,52.62,44.29,47.15,39.46,92.64,51.28,134.52,180.0,173.1250.87,398.79,310.35675.89,749.87] 返回=[] 对于rangelenlst中的i: 返回.appendlst[i+1]//lst[i]-1 返回 IndexError

我有一份股票回报清单,需要找到一年比一年的回报

我已经为退货创建了一个空列表,并尝试在列表上进行迭代,以便为逐年退货追加

lst=[10.82,18.89,52.62,44.29,47.15,39.46,92.64,51.28,134.52,180.0,173.1250.87,398.79,310.35675.89,749.87] 返回=[]

对于rangelenlst中的i: 返回.appendlst[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
这个

将导致i在0和lenAMZN_股票价格-1之间变化。当它处于其最高值时,i+1超出列表的界限。使用

for i in range(len(AMZN_stock_prices)-1):
这样i+1就不会超出界限。

科林

假设您对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()
从那里开始。出于多种原因,强烈建议您留在熊猫馆,开始您的金融系列数据工作。这里有很多关于这些库的堆栈溢出的帮助

祝你好运

AMZN股票价格应该是lst吗?想想当我是列表中的最后一个索引时,i+1是什么。
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()