我正在使用“實時”Excel 檔案,其資料連接每 5 分鐘重繪 一次(包括時間戳)。由于每次重繪 都會丟失以前的資料,因此我想每小時將資料復制到一個新檔案中,以進行資料分析。
我撰寫了這段代碼,它通常有效,因為它通過從實時 Excel 復制資料每小時創建一個新檔案:
import pandas as pd
from datetime import datetime as dt
import schedule
import time
df = pd.read_excel("import.xlsx", sheet_name='Raw Data')
def export():
now =dt.now()
dt_string = now.strftime("%Y%m%d %H%M%S")
df.to_excel("export" dt_string ".xlsx", sheet_name='Raw Data')
schedule.every(3600).seconds.do(export)
while 1:
schedule.run_pending()
time.sleep(1)
不幸的是,所有新的 Excel 檔案都具有相同的資料和時間戳(我開始運行代碼的那一刻)。首先我想,除了重繪 資料外,還需要每隔x分鐘保存一次live excel檔案,但是,不時手動保存檔案并沒有什么區別。
我是否可以對我的 Python 代碼進行任何更改,以便每小時在每個副本中獲取最新資料,而不僅僅是開始運行時的初始資料?
uj5u.com熱心網友回復:
我認為資料沒有改變的原因是因為您的 df 變數在 export() 函式之外設定了一次。要解決此問題,您只需將作業移到您的函式中:
import pandas as pd
from datetime import datetime as dt
import schedule
import time
def export():
df = pd.read_excel("import.xlsx", sheet_name='Raw Data') #Moved this line
now =dt.now()
dt_string = now.strftime("%Y%m%d %H%M%S")
df.to_excel("export" dt_string ".xlsx", sheet_name='Raw Data')
schedule.every(3600).seconds.do(export)
while 1:
schedule.run_pending()
time.sleep(1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518315.html
標籤:Python擅长熊猫
下一篇:EXCEL資料透視表