python - 在 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
输出:
解决方案
每次进入第二个 while 循环时,都应该初始化 i=0。你的 i 从第一次循环第二个 while 循环开始被设置为 len(data) ,然后再也不会进入第二个 while 循环。
while a < len(data):
i=0
推荐阅读
- apache - Xampp 子域无法通过 Edge 和 Firefox 访问?
- c - 在C中找到具有非常大的幂和除数的模数
- scala - List("foo") foreach 打印其他同义词?
- react-native - 即使在应用程序关闭后如何使 socket-io 工作
- python - 概括 Numpy 切片 Python
- jquery - 通过jquery比较两个html输入框
- javascript - 数组属性在JS对象中是如何工作的
- javascript - React - 检查对象是否在状态变量中
- java - 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository
- python-3.x - 文件编号将如何影响 Gensim LDA 的结果?