您好,我正在使用熊猫编写此python代码,以分析一些库存数据。我正在使用两个too循环来获取累积利润,但这给了我列表索引超出范围的错误。有人可以帮忙吗? df是我正在使用的数据框,它有大约10列,包括“投资”和“变化百分比”。 df ['invest']列是所有二进制数字1或0,而df ['percent change']是与上一交易日相比的股价变化。 Windows的意思是如果我看到连续0个窗口(例如2个连续0个窗口),则我将购买该股票并在第二天卖出。
这是我的任务。这不是真正的库存分析。因此,请不要过于重视分析方法。这些只是为了演示python用于数据科学
count=0
countseq=0
principal=100
windows=[1,2,3,4,5]
profit_loss=[0,0,0,0,0]
for i in windows:
for j in range(len(df)-1):
if df['invest'][j]==0:
count+=1
if count==i:
profit_loss[i]+=principal*df['percent change'][j+1]
count=0
countseq+=1
IndexError Traceback (most recent call last)
<ipython-input-119-53972da7243a> in <module>()
10 count+=1
11 if count==i:
---> 12 profit_loss[i]+=principal*df['percent change'][j+1]
13 count=0
14 countseq+=1
IndexError: list index out of range
答案 0 :(得分:1)
您正在使用最大值为windows
的{{1}}的值来索引到5
,其最大索引为profit_loss
。请记住,python是零索引的