列表索引超出范围-Python /熊猫

时间:2018-09-26 21:59:18

标签: python python-3.x pandas

您好,我正在使用熊猫编写此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

1 个答案:

答案 0 :(得分:1)

您正在使用最大值为windows的{​​{1}}的值来索引到5,其最大索引为profit_loss。请记住,python是零索引的