【发布时间】:2018-05-18 09:34:53
【问题描述】:
我正在使用此代码对第一个数据帧中的每条记录使用数据帧查找。
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
然后进入无限循环。
【问题讨论】:
-
你在哪里增加
j? -
您为什么希望它不这样做? j 是 for 循环变量,它不会在 while 内递增
-
分配
l=j并在while循环while l<(k+6)中使用l,并检查l的增量
标签: python while-loop infinite-loop