2017-09-14 77 views
0

我一直在將Python Beautifulsoup輸出寫入Pandas CSV文件時遇到問題。作爲最終的輸出結果,我希望hreffyear2位於各自具有多行的獨立列上。但問題是,既linkyear給我一個新的列表,每一個新的生產線,所以我得到這樣的事情,當我打印出來他們中的一個,例如year2無法使用熊貓編寫Beautifulsoup4輸出到csv

['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輸出中列出了到CSV與熊貓嗎?感謝和抱歉,代碼混亂,語言不好。如果有些事情還不清楚,我會盡快修復。

+0

你可以添加一個你正在使用的html的樣本,你究竟想要提取什麼?猜測問題是你正在for循環中創建一個新的數據框 - 你應該把所有的年份添加到列表中,然後在for循環之後從該列表中創建一個數據框。 –

+0

意外地將此作爲答案添加,但我將複製粘貼爲註釋:我從HTML獲取所需的所有數據而沒有問題,但將它們傳遞給數據框會導致問題。目前,我正在通話,無法提供HTML代碼,但如果您仍然需要,我會稍後再試。 – murdock477

+0

好的,我解決了它。首先,我在循環外部創建list = [],然後在for循環中追加列表,看起來好像現在可以工作!謝謝,因爲如果沒有你的幫助,我可能沒有做到! – murdock477

回答

0

猜測問題是你正在for循環中創建一個新的數據框 - 你應該把所有的年份添加到列表中,然後在for循環之後從該列表中創建一個數據框。