如何将数据框附加到 excel
How to append dataframe to excel
我有一个数据框,我将其保存到某个位置的 excel 文件中。
目前我这样做:
df.to_excel(r'C:\Users\user_name\Downloads\test.xlsx')
我面临的问题是当我插入新数据框时它会覆盖旧数据框。我想附加新数据。我尝试了几个 SOF 答案,但似乎没有任何效果。
可以先read_excel
,append
再回写to_excel
:
filename = r'C:\Users\user_name\Downloads\test.xlsx'
existing = df.read_excel(filename)
output = existing.append(df)
output.to_excel(filename)
读取前检查文件是否存在,可以使用:
import os
filename = r'C:\Users\user_name\Downloads\test.xlsx'
if os.path.exists(filename):
existing = df.read_excel(filename)
output = existing.append(df)
else:
output = df
output.to_excel(filename)
处理它的一种方法是您可以读取 Excel 中的内容并将其与您的数据框组合,然后基本上覆盖 excel 文件/重新生成它。
这里是一个类似问题的示例,询问的是 excel 作者在哪里可以找到解决方案。他们没有覆盖现有数据,而是通过读取起始行的现有文件来仔细设置起始行。
可以使用命令 writer.sheets[sheetname].max_row
找到最后一行/起始行
append dataframe to excel with pandas
import pandas
from openpyxl import load_workbook
book = load_workbook('test.xlsx')
writer = pandas.ExcelWriter('test.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
for sheetname in writer.sheets:
df1.to_excel(writer,sheet_name=sheetname, startrow=writer.sheets[sheetname].max_row, index = False,header= False)
writer.save()
我有一个数据框,我将其保存到某个位置的 excel 文件中。 目前我这样做:
df.to_excel(r'C:\Users\user_name\Downloads\test.xlsx')
我面临的问题是当我插入新数据框时它会覆盖旧数据框。我想附加新数据。我尝试了几个 SOF 答案,但似乎没有任何效果。
可以先read_excel
,append
再回写to_excel
:
filename = r'C:\Users\user_name\Downloads\test.xlsx'
existing = df.read_excel(filename)
output = existing.append(df)
output.to_excel(filename)
读取前检查文件是否存在,可以使用:
import os
filename = r'C:\Users\user_name\Downloads\test.xlsx'
if os.path.exists(filename):
existing = df.read_excel(filename)
output = existing.append(df)
else:
output = df
output.to_excel(filename)
处理它的一种方法是您可以读取 Excel 中的内容并将其与您的数据框组合,然后基本上覆盖 excel 文件/重新生成它。
这里是一个类似问题的示例,询问的是 excel 作者在哪里可以找到解决方案。他们没有覆盖现有数据,而是通过读取起始行的现有文件来仔细设置起始行。
可以使用命令 writer.sheets[sheetname].max_row
找到最后一行/起始行append dataframe to excel with pandas
import pandas
from openpyxl import load_workbook
book = load_workbook('test.xlsx')
writer = pandas.ExcelWriter('test.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
for sheetname in writer.sheets:
df1.to_excel(writer,sheet_name=sheetname, startrow=writer.sheets[sheetname].max_row, index = False,header= False)
writer.save()