首页 > 解决方案 > 如何循环遍历熊猫数据框中列中的每一行

问题描述

我有一个如下所示的 excel 文件,其中包含一组名称及其 google 学者链接。

ID   Name   Link
1    A      www.abc.com
2    B      www.def.com
3    C      www.ghi.com

我编写了一个代码来读取 excel 文件,使用 for 循环浏览每个链接,在每个循环中 - 从每个链接中抓取信息并将其写入一个新文件。代码如下。

File=[]
for i in arr:
   driver.get(i)
   columns={}
   columns['Name'] = driver.find_element_by_id()
   columns['Citations'] = driver.find_element_by_id()
   File.append(columns)

我的问题是我想在我的新文件中包含一个列“ID”,它与我的 Excel 文件中的“ID”列相同。本质上,我想要 for 循环的第一次迭代中列“ID”的第一行,循环的第二次迭代中列“ID”的第二行,依此类推。有人可以帮忙吗?谢谢!

标签: pythonpandasdataframefor-loopweb-scraping

解决方案


不要将它们保存为字典,而是将它们保存为 DataFrame 并分配一个新列,称为 source 并带有 id:

File=[]
for i in arr:
   driver.get(i)
   columns={}
   columns['Name'] = driver.find_element_by_id()
   columns['Citations'] = driver.find_element_by_id()
   File.append(pd.DataFrame(columns).assign(source=i))

要从中仅获取一个数据框,您可以使用:

pd.concat(File)

推荐阅读