我正在练习在 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")
错误:单个位置索引器越界
答案 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
将超出此范围。