要使while True 工作,您需要一个结束循环的条件。我给出的解决方案通常是迭代循环的有效方法。 DataFrame 有自己的迭代器,这些迭代器的性能可能更高,但似乎一些基本的 Python 循环会对您有所帮助。
在您的代码中,您正在执行一个 for 循环,其中包含一个带有计数器的 while 循环,但然后永远不会在您的 DataFrame 中引用该索引。您可以只使用for 循环而不使用while 循环。
arr = [1, 2, 3]
for i in range(len(arr)):
print(arr[i])
0 是隐含的,您使用i 变量来索引您的数组。
另一种方法是使用enumerate。它会给你每次迭代的索引和值。
for i, value in enumerate(arr):
print(value)
现在如果你不需要索引,你可以直接遍历数组。
for value in arr:
print(value)
对于数据帧,它们有一些迭代器,您可以在 for 循环中使用它们。我认为这与您的描述中的数据模型不匹配,但它会给您一个一般情况。
for row in df.iterrows():
print(row['urls'])
你可以这样做:
for url in df['urls']:
print(url)
如果 'urls' 是一列。
作为参考,当您使用 while 循环时,它需要看起来像这样。
这不是迭代此数组的正确方法
cnt = 0
while cnt < len(arr):
print(arr[cnt])
cnt += 1
或者while True
cnt = 0
while True:
if cnt >= len(arr):
break
print(arr[cnt])
cnt += 1
希望您能明白为什么首选 for 循环。更少的代码,更干净,更不容易出错。