我在将Python Beautifulsoup输出写入Pandas CSV文件时遇到了问题。作为最终输出,我喜欢hreff
和year2
在一个单独的列上,每列都有多行。但问题是link
和year
为每个新行提供了一个新列表,所以当我打印出其中一个时,我得到类似的内容,例如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?谢谢,对不起凌乱的代码和糟糕的语言。如果某些事情仍然不清楚,我会尽快修复它。
答案 0 :(得分:0)
猜测问题是你在for循环中创建了一个新的数据帧 - 你应该将所有年份添加到列表中,然后在for循环之后从该列表中创建一个数据帧。