2016-08-07 17 views
-1

Ich habe einen Code, der Tabellen von einer Website kratzt, und liest es in Pandas Dataframe. Dies geschieht jedoch durch eine for Schleife, wie die Website entworfen wurde. Als solche sind die Tische alle mit dem gleichen name dh dem Stichwort: sie unter df Name Gibt esVerschmelzung von Datenrahmen, die über Web-Scraping erhalten wurde

-Code

soup = bs4.BeautifulSoup(driver.page_source, "html.parser") 
    for thead in soup.select(".data-point-container table thead"): 
     tbody = thead.find_next_sibling("tbody") 

     table = "<table>%s</table>" % (str(thead) + str(tbody)) 

     df = pandas.read_html(str(table))[0] 

     print(df) 
     print('-------------') 

Ergebnis

 Table1 FY2012 FY2013 FY2014 FY2015 Last 12 Months 
0 item1 value1 value2 value3 value4 value5 
1 item2 value1 value2 value3 value4 value5 
2 item3 value1 value2 value3 value4 value5 
3 item4 value1 value2 value3 value4 value5 
4 item5 value1 value2 value3 value4 value5 
5 item6 value1 value2 value3 value4 value5 
------------- 

    Table2 FY2012 FY2013 FY2014 FY2015 Last 12 Months 
0 item1 value1 value2 value3 value4 value5 
1 item2 value1 value2 value3 value4 value5 
2 item3 value1 value2 value3 value4 value5 
3 item4 value1 value2 value3 value4 value5 
------------- 

    Table3 FY2012 FY2013 FY2014 FY2015 Last 12 Months 
0 item1 value1 value2 value3 value4 value5 
1 item2 value1 value2 value3 value4 value5 
2 item3 value1 value2 value3 value4 value5 
3 item4 value1 value2 value3 value4 value5 
4 item5 value1 value2 value3 value4 value5 
5 item6 value1 value2 value3 value4 value5 
------------- 

    Table4 FY2012 FY2013 FY2014 FY2015 Last 12 Months 
0 item1 value1 value2 value3 value4 value5 
1 item2 value1 value2 value3 value4 value5 
2 item3 value1 value2 value3 value4 value5 
3 item4 value1 value2 value3 value4 value5 
4 item5 value1 value2 value3 value4 value5 
5 item6 value1 value2 value3 value4 value5 
6 item7 value1 value2 value3 value4 value5 
7 item8 value1 value2 value3 value4 value5 

für mich eine Art und Weise markiert sind alle Datarahmen in nur 1 Dataframe zusammenführen/zusammenführen?

+1

Wiederum gibt es eine Menge Fragen, die sich auf das Zusammenführen von DataFrames richten. Und wir würden gerne sehen, was Sie versucht haben und was dieses Problem von den anderen auf dieser Seite unterscheidet. Als Trost, werfen Sie einen Blick auf die Pandas Merging Dokumentation. – Kartik

+0

Wieder .. Ich frage nach Ideen. Als Trost, vielen Dank für Ihre Anregungen. –

Antwort

1

Wenn Sie nur eine Reihe von DataFrames zusammenführen müssen, können Sie sie einfach in einer Liste zusammenfassen und sie dann unter Verwendung von pd.concat zusammenführen.

So etwas sollte funktionieren:

dataframes = [] 

for thread in soup.select(...): 

    #your scraper logic here 

    df = pandas.read_html(...) 
    dataframes.append(df) 

pd.concat(dataframes) 

Does diese Hilfe?