如何在不删除以前数据的情况下写入现有excel 10000次文件?

2024-09-17 18:18:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码在循环上工作

在一个进程之后,它将生成100行 第二秒后,它将生成160行

就这样一直持续到10000次,将近3亿行。你知道吗

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

df.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

已使用此项,但数据未保存它仍在覆盖

我的表只有3列,所有输出列都相同。你知道吗

代码:

a = "SELECT id FROM USER WHERE time >'2018-03-01'"
dataa = pd.read_sql_query(a, con=engine)
print(dataa)

for userid in dataa:
   x=f"SELECT idbody FROM col1 WHERE user_id='{userid}'"
   data = pd.read_sql_query(x,con = engine)

在这里,我需要将这1000个userid行附加到一个excel文件中


Tags: 代码importpandasforwsloadxlsxengine
1条回答
网友
1楼 · 发布于 2024-09-17 18:18:35

您应该使用“append”模式,它将附加数据,而不覆盖。你知道吗

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')

with pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl', mode='a') as writer: 
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

    df.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

    writer.save()

相关问题 更多 >