单个位置索引器越界:错误

时间:2021-01-08 16:04:40

标签: python pandas

我正在练习在 Pandas 中的数据帧中工作。我遇到了一个错误,我不明白出现错误的原因。有人能解释一下原因吗? 笔记: 这仅在我使用 df.iloc[i+1,0] 代码行时发生。如果我只使用 df.iloc[i,0] 它工作正常

数据框:

A,B
1,2
2,3
4,5
5,6
6,7
7,8
9,10

代码:

import pandas as pd
df = pd.read_csv("text.txt")
for i in range(0,len(df)):
    if (df.iloc[i,0] + df.iloc[i+1,0]) == 5 :
        print("hey")

错误:单个位置索引器越界

2 个答案:

答案 0 :(得分:0)

您的程序在“A”列中查找当前值和下一个值。但是,一旦到达数据帧的“A”列的末尾,数据帧中就没有其他值,但它仍会查找下一个值:.iloc[i + 1, 0],该值不存在。这会导致您遇到的错误。该问题可以通过将范围更改为小于数据帧长度的 1 来解决。这意味着循环将在数据帧结束前停止一个值,读取最终值,然后退出。

import pandas as pd
df = pd.read_csv("test.txt")
for i in range(0,len(df)-1):
    if (df.iloc[i,0] + df.iloc[i+1,0]) == 5 :
        print("hey")

答案 1 :(得分:0)

如果 i 达到最大可能值

for i in range(0, len(df))

那么 i+1 将超出此范围。