我有一个循环,我调用一个函数,我循环读取一个excel,然后编写并保存它。但最后我只存储了最后一个结果。 作为一个简单的例子
for i in range(3):
callfunc(i)
callfunc(i)
panda open excel
for j in range(10:13:1)
write in excel(i,j) in new sheet
save excel
作为最终结果,我只得到(3,10)(3,11)(3,12)。
似乎当重新打开callfunc
中的excel时,excel没有得到保存,但原始的excel被保留了,我不知道为什么。
谢谢!
答案 0 :(得分:0)
让我们使用单独的sheet_name:
import pandas as pd
import numpy as np
from openpyxl import load_workbook
path = r"~\Desktop\excelData\data.xlsx"
book = load_workbook(path)
for i in range(3):
writer = pd.ExcelWriter(path, engine = 'openpyxl')
writer.book = book
df = pd.DataFrame(x3)
df.to_excel(writer, sheet_name = '{}__sheet'.format(i))
writer.save()
writer.close()