在循环内附加数据框

Posted

技术标签:

【中文标题】在循环内附加数据框【英文标题】:Appending Dataframe Inside Loop 【发布时间】:2019-08-07 01:19:27 【问题描述】:

我试图通过遍历元素然后单击分页来获取链接列表。我不确定如何在 pandas 数据帧通过如下所示的分页后附加每个循环,以便我可以在循环外调用数据帧以列出所有链接。

它总是覆盖并打印出最后一行。

while True:

    links = [link.get_attribute('href') for link in driver.find_elements_by_class_name('view-detail-link')]

    for link in links:

        df_links = pd.DataFrame([[link]], columns=['link'])

    try:

        NextPage = driver.find_element_by_xpath('//a[@class="ui-pagination-next ui-goto-page"]')
        driver.execute_script("arguments[0].click();", NextPage)

        time.sleep(3)

    except NoSuchElementException:
        break

print(df_links.link[0])

【问题讨论】:

应该避免这种情况见this solution将DataFrames附加到一个列表中,在循环末尾连接一个 【参考方案1】:

您需要在循环外创建 DataFrame。然后每次在循环中创建一个新的 DataFrame 时,将它附加到主要的:

df = pd.DataFrame()

while True:

    links = [link.get_attribute('href') for link in driver.find_elements_by_class_name('view-detail-link')]

    for link in links:

        df_links = pd.DataFrame([[link]], columns=['link'])
        df = df.append(df_links)

    try:

        NextPage = driver.find_element_by_xpath('//a[@class="ui-pagination-next ui-goto-page"]')
        driver.execute_script("arguments[0].click();", NextPage)

        time.sleep(3)

    except NoSuchElementException:
        break

print(df.link[0])

【讨论】:

托比 - 如果你也能回答这个问题,请告诉我:[***.com/questions/55192162/…

以上是关于在循环内附加数据框的主要内容,如果未能解决你的问题,请参考以下文章

在循环中将字典附加到熊猫数据框

如何在循环中附加多个熊猫数据框?

如何在 for 循环中附加熊猫数据框中的行?

将事件处理程序附加到在循环内创建的表单

循环遍历数据框列后如何附加列表?

附加在 for 循环中生成的 pandas 数据帧