无法使用Pandas将Beautifulsoup4输出写入csv

时间:2017-09-14 14:57:06

标签: python pandas csv beautifulsoup

我在将Python Beautifulsoup输出写入Pandas CSV文件时遇到了问题。作为最终输出,我喜欢hreffyear2在一个单独的列上,每列都有多行。但问题是linkyear为每个新行提供了一个新列表,所以当我打印出其中一个时,我得到类似的内容,例如year2

['2001']
['2002'] etc...

但我希望这样:

['2001', '2002'] So that I could use it properly in a dataframe. (I Guess)

代码本身如下:

 for link in supp.find_all('div', {'class': 'poster'}):
        href = link.next.next
        hreff = href.get('href').splitlines()
        #print(hreff)
    for year in supp.find_all('div', {'class': 'data'}):
        try:
            year2 = year.next.next.next.next.next.next.next.next.text.splitlines()
        except AttributeError:
            continue

        columnlist = ['year']
        df = pd.DataFrame(year2, columns=columnlist)
        print(df)
        df.to_csv('xd.csv', mode='a', index=False)

当我用year2打印出数据帧时,我得到了这个输出:

   year
0  2017
   year
0  2010
   year
0  2016

所以,我想知道你如何正确地将两个bs4输出列表写入带有pandas的CSV?谢谢,对不起凌乱的代码和糟糕的语言。如果某些事情仍然不清楚,我会尽快修复它。

1 个答案:

答案 0 :(得分:0)

猜测问题是你在for循环中创建了一个新的数据帧 - 你应该将所有年份添加到列表中,然后在for循环之后从该列表中创建一个数据帧。