在DF行上打印输出迭代

时间:2019-12-19 21:03:14

标签: python pandas

我不知道我在做什么,但是此代码的目的是从多个页面中抓取所有链接href(没有故意包含分页代码)并将其存储在pandas DF中。循环结束后,我想从df2打印所有行。 “ for i in range(0,10)”仅运行循环10,并将链接附加10次。

我如何编码它以便它继续附加所有链接(不限于10个)?很抱歉成为新手。

for linkurl in linkcontainer:
    link = linkurl.find_element_by_xpath('.//div[2]/div/div/span/a').get_attribute("href")

    df_links = pd.DataFrame([[link]], columns=['link'])
    df2 = pd.DataFrame()
    for i in range(0,10):
        df2 = df2.append(df_links)

/// loop breaks here when it paginates through all pages ///

print(df2.link.to_string(index=False, header=False))

2 个答案:

答案 0 :(得分:1)

您正在做的是在每个循环中覆盖数据框,您需要将其存储到某种列表或字典中,例如:

links = []
    for linkurl in linkcontainer:
        link = linkurl.find_element_by_xpath('.//div[2]/div/div/span/a').get_attribute("href")

        links.append(link)

# loop breaks here when it paginates through all pages 
df2 = pd.DataFrame({'links' : links})

根据您的IDE,您可以通过多种方式打印行,

简单调用print(df2),或者如果您确实要遍历数据框

for index, row in df2.iterrows():
    print(row)

答案 1 :(得分:0)

Iterrows可以做到。

For ind, row in df_links.iterrows():
    df2.loc[len(df2), :] = row