每个循环都会覆盖Pandas Dataframe

时间:2019-01-14 17:30:27

标签: pandas loops dataframe beautifulsoup overwrite

我正在尝试在每个循环中附加一个数据框。不幸的是,创建的列表总是被新的输出覆盖...

 for x in link_href_list: 
    urllib.request.urlopen(x)
    html = urlopen(x)
    bs = BeautifulSoup(html, "lxml")    
    table=bs.find('tbody')
    rows = table.tr.next_siblings
    list_rows = []
    for row in rows:
        a=row.find('td').get_text().strip()
        list_rows.append(a)
    list_rows = pd.Series(list_rows)
list_rows.to_frame()

我需要一个数据框,该数据框在每次迭代中创建一个包含熊猫的新列...

1 个答案:

答案 0 :(得分:0)

看,如果您的列表值在每次迭代中都具有相同的长度,那么就不那么困难了。您需要做的就是在创建数据框时,提供列名,这应该很好

pd.DataFrame(list_rows, columns=('Col1', 'Col2', 'Col3'))

您不需要将每个后续迭代值都创建为一个序列,即不需要此行:

list_rows = pd.Series(list_rows)

我希望这会对您有所帮助。 如果万一您的值数量每次都不同,则可能必须以不同的方式处理它。