我正在执行Web抓取,并且每天都将数据帧的输出写入新的Excel工作簿中。我想将每天的输出添加到已经存在的excel文件中,但我不知道该怎么做。谁能帮我解决这个问题!
writer = pd.ExcelWriter('output'+dte.strftime("%Y-%m-%d")+'.xlsx')
for each in channel_id:
start_time=0
start_time = time.time()
df = pd.DataFrame()
a=get_all_video_in_channel(each)
print(len(a))
df=df.append(get_links(a),ignore_index=True)
df = df.set_index('link').transpose()
#print(df)
df.to_excel(writer, 'Sheet'+str(count))
writer.save()
print("--- %s seconds ---" % (time.time() - start_time))
count=count+1
上面是用于将数据帧写入excel文件的代码的一小段(一天)。我希望每天使用同一张excel文件。
答案 0 :(得分:0)
使用openpyxl
:
假设您有一个现有的excel file-- 'output'+dte.strftime("%Y-%m-%d")+'.xlsx'
,其工作表名称为Sheet1
。您可以执行以下操作:
from openpyxl import load_workbook
book = load_workbook('output'+dte.strftime("%Y-%m-%d")+'.xlsx')
writer = pd.ExcelWriter('output'+dte.strftime("%Y-%m-%d")+'.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(writer, 'Sheet1', index=None, startrow=1, header=None)
writer.save()
让我知道是否有帮助。
答案 1 :(得分:0)
这应该做您想要的。
from openpyxl import load_workbook
workbook_name = 'C:\\your_path\\Book1.xlsx'
wb = load_workbook(workbook_name)
page = wb.active
# New data to write:
child = [['one','two','buckle my shoe'], ['three','four','open the door']]
for info in child:
page.append(info)
wb.save(filename=workbook_name)