首页 > 解决方案 > 在 python 中使用 while 循环未获得所需的输出

问题描述

我有一个包含两列的 excel 文件,column[0]= keyword 和 column 1 = "urls",每个关键字有 10 个 url。我正在使用此代码来查找两个或多个关键字是否具有共同的网址,然后仅打印那些共同的网址以及那些具有共同网址的关键字。代码获取列中的第一个 url,然后检查是否有任何其他 url 与第一个 url 匹配,如果匹配,则打印这些 url 及其各自的关键字。

问题是,它只遍历文件一次,只给我列中第一个 url 的结果,而不是为第二个 url 再次运行,依此类推......我该怎么做才能让整个代码再次运行对于第二个网址,然后是第三个,依此类推....

还有我如何分别对每个结果进行分组?

如果有人可以提供帮助,我将不胜感激。谢谢!

这是我的代码

import pandas as pd
import pandas as pd

data = pd.read_excel("editing_cluster.xlsx", usecols = ["keyword","urls"] )
data
results = dict(), a=0, i=0

while a < len(data):

    while i < len(data):
        if data.loc[a]["urls"]==data.loc[i]["urls"]:
            results = [data.loc[i]["urls"],data.loc[i]["keyword"]]
            pprint(results)

        i+=1 
    a+=1

输出:

代码输出的屏幕截图

标签: python

解决方案


每次进入第二个 while 循环时,都应该初始化 i=0。你的 i 从第一次循环第二个 while 循环开始被设置为 len(data) ,然后再也不会进入第二个 while 循环。

while a < len(data):
i=0

推荐阅读