簡體   English   中英

如何使用 pandas 寫入現有 excel 文件而不覆蓋現有數據

[英]How to write to an existing excel file without over-writing existing data using pandas

我知道之前已經發布過類似的問題,但我還沒有找到適合這種情況的東西。 我希望你能幫忙。

以下是問題的摘要:

  1. 我正在使用硒編寫 web 抓取代碼(用於分配目的)
  2. 該代碼利用一個for循環將go從一個頁面轉移到另一個頁面
  3. 代碼的 output 是 dataframe 從每個頁碼導入到 excel。 (基本上是一張桌子)
  4. 來自所有 web 頁面的數據幀僅在一張 excel 表中捕獲。(excel 文件中的多張表不)
  5. 每個 web 頁面具有相同的數據格式(即列數和列標題相同,但行值不同..)
  6. 有關信息,我正在使用 pandas 因為它幫助將 output 從網站轉換為 excel

我面臨的問題是,當 dataframe 導出到 excel 時,它會覆蓋上一次迭代的數據。 因此,當我運行代碼並完成抓取時,我只會從最后一次 for 循環迭代中獲取數據。

請告知我需要添加的編碼行,以便在 excel 表中捕獲所有迭代,換句話說,更具體地說,每次迭代都應從第一個空行開始將數據導出到 excel。

這是代碼的摘錄:

for i in range(50, 60):  
    url= (urlA + str(i)) #this is the url generator, URLA is the main link excluding pagination

    driver.get(url)

    time.sleep(random.randint(3,7))

    text=driver.find_element_by_xpath('/html/body/pre').text

    data=pd.DataFrame(eval(text))

    export_excel = data.to_excel(xlpath)

謝謝迪克格拉夫。 你的提議奏效了。

這是其他人的完整代碼(供將來參考)。

為字體道歉,無法正確設置。 無論如何,希望下面對將來的某些人有用。

xlpath= "c:/projects/excelfile.xlsx"

df=pd.DataFrame() #creating a data frame before the for loop. (dataframe is empty before the for loop starts)

Url= www.your website.com 

for i in irange(1,10): 

       url= (urlA + str(i)) #this is url generator for pagination (to loop thru the page) 

       driver.get(url)  

       text=driver.find_element_by_xpath('/html/body/pre').text # gets text from site

       data=pd.DataFrame(eval(text)) #evalues the extracted text from site and converts to Pandas dataframe 

       df=df.append(data) #appends the dataframe (df) specificed before the for-loop and adds the new (data)

export_excel = df.to_excel(xlpath)  #exports consolidated dataframes (df) to excel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM