我使用python将mysql查询存储到dataframes中,然后将结果下载到excel文件中
query = """ ... """
DF= pd.read_sql(query, connection)
writer = pd.ExcelWriter('excel.xlsx',engine='xlsxwriter')
DF.to_excel(writer,'sheet1')
writer.save()
但是当我需要更新我的文件时,我必须运行sql查询来检索所有现有的数据+新行,现在每次执行这可能需要一段时间,并将服务器置于不需要的负载中
例如,我有一个100行的excel文件,db有110行,我会运行一个查询,从数据库的第90行到第110行检索数据,并用额外的10行更新excel
谢谢
2条答案
按热度按时间polhcujo1#
有几种方法可以做到这一点。首先,您需要读取excel中的数据,即在数据框中加载现有数据。另一种方法是将指针存储在某处,例如Dataframe中的行数或最后一个id(假设
auto_increment
,然后相应地修改查询。例如,在一个文件中存储最后一个id,比如1000。然后读它,从那里继续。或者存储提取数据的大小并使用偏移量语法。
然后就是连接两个Dataframe(现有+新)的问题。
pjngdqdw2#
检查文件是否存在,然后写入文件