使用while循环时进入无限循环

时间:2018-05-18 09:34:53

标签: python while-loop infinite-loop

我正在使用此代码对第一个数据帧中的每个记录使用数据框查找。

for i in range(len(a1)):
    title_derived = []
    k = 100000
    print(i)
    for j in range(len(b1)):
        print(j)
        while j < (k + 6):
            #print(b1.iloc[i][10], a1.iloc[j][3])
            if b1.iloc[j][10] == a1.iloc[i][3]:
                print(j,k)
                print('1st if ' + str(j))
                print (b1.iloc[j][1], a1.iloc[i][11], b1.iloc[j][5])
                if (((pd.to_datetime(b1.iloc[j][1]) <= pd.to_datetime(a1.iloc[i][11]) <= pd.to_datetime(b1.iloc[j][5]))) or ((pd.to_datetime(b1.iloc[j][1]) <= pd.to_datetime(a1.iloc[i][8]) <= pd.to_datetime(b1.iloc[j][5])))) :
                    print('2nd if' + str(j))
                    title_derived.append(b1.iloc[j][15])
                    print('inserted ' + b1.iloc[j][15] + ' in ' + str(i) + ' th record ')
                a1.iat[i,65] = title_derived 

它打印, 0 0

然后进入一个无限循环。

1 个答案:

答案 0 :(得分:0)

  

可能是因为你的长度是&#34; b1&#34;小于&#34; k + 6&#34;的值。在这种情况下,你将永远不会离开while循环,在最后它会抛出错误。   在这种情况下,您应该首先检查&#34; b1&#34;然后决定你的诡计。