列表索引超出范围-Python/Pandas
您好,我正在使用pandas分析一些股票数据来编写这段python代码。我使用了两个太多的循环来获取累积利润。但它给了我列表索引超出范围的错误。有人能帮忙吗?df是我正在使用的数据帧,它大约有10列,包括“invest”和“percentchange”。df['invest']列都是二进制数字1或0,df['percent change']是股价相对于最后一天的变化。这里的windows意味着,如果我看到windows连续0,例如2个连续0,我将购买该股票,并在第二天将其出售 这是我的任务。这不是真正的股票分析。因此,请不要过于重视分析方法。这些只是为了演示数据科学中的python列表索引超出范围-Python/Pandas,python,python-3.x,pandas,Python,Python 3.x,Pandas,您好,我正在使用pandas分析一些股票数据来编写这段python代码。我使用了两个太多的循环来获取累积利润。但它给了我列表索引超出范围的错误。有人能帮忙吗?df是我正在使用的数据帧,它大约有10列,包括“invest”和“percentchange”。df['invest']列都是二进制数字1或0,df['percent change']是股价相对于最后一天的变化。这里的windows意味着,如果我看到windows连续0,例如2个连续0,我将购买该股票,并在第二天将其出售 这是我的任务。这不
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
count=0
countseq=0
本金=100
窗口=[1,2,3,4,5]
损益=[0,0,0,0,0]
对于windows中的i:
对于范围内的j(透镜(df)-1):
如果df['invest'][j]==0:
计数+=1
如果计数=i:
损益[i]+=本金*df[变动百分比][j+1]
计数=0
countseq+=1
索引器回溯(最后一次最近调用)
在()
10计数+=1
11如果计数=i:
--->12损益[i]+=本金*df[变动百分比][j+1]
13计数=0
14 countseq+=1
索引器:列表索引超出范围
您正在使用最大值为5
的windows
的值对损益进行索引,其最大索引为4
。请记住,python是零索引的try对于范围内的j(len(df['percent change']):
不,它不起作用。我想这是因为我,但我不确定@RuzihmYou是否在使用windows
,max5
的值来索引到损益中,其最大索引是4
。请记住,python是零索引的。换句话说,对范围内的i(len(损益))执行:
对范围内的j执行(len(df['percent change')):
它成功了@安德森