Python 将数据框附加到excelsheet,而不是覆盖它
我想将panda dataframePython 将数据框附加到excelsheet,而不是覆盖它,python,excel,python-3.x,pandas,dataframe,Python,Excel,Python 3.x,Pandas,Dataframe,我想将panda dataframedf的内容附加到Excel工作表中 这就是我所做的 df.to_excel(excel_writer="target.xlsx", sheet_name="sheet_1") 此代码的问题在于它会覆盖target.xlsx。因此,我在target.xlsx中丢失了所有旧数据。我想让代码做的是附加,而不是覆盖excel工作表 我正在使用python 3.7 我认为最简单的方法是: import pandas as pd import numpy as np i
df
的内容附加到Excel工作表中
这就是我所做的
df.to_excel(excel_writer="target.xlsx", sheet_name="sheet_1")
此代码的问题在于它会覆盖target.xlsx
。因此,我在target.xlsx
中丢失了所有旧数据。我想让代码做的是附加,而不是覆盖excel工作表
我正在使用python 3.7 我认为最简单的方法是:
import pandas as pd
import numpy as np
import xlsxwriter
workbook = xlsxwriter.Workbook('arrays.xlsx')
worksheet = workbook.add_worksheet() # a created excel sheet
array = pd.read_csv('array.csv')
array = array.tolist()
row = 0
for col, data in enumerate(array):
worksheet.write_column(row, col, data)
workbook.close()
这是xlsxwriter。在target_df中加载'target.xlsx'。 然后
我想它应该很好用。然后将其保存回'target.xlsx'。如果您想添加新的工作表,下面是您的答案
import pandas as pd
# Open the existing excel file with all sheets
df_dict = pd.read_excel('target.xlsx',sheet_name=None)
with pd.ExcelWriter(fp) as writer:
# Save the original sheets
for sheet in df_dict:
df[sheet].to_excel(writer, sheet_name=sheet)
# If the new sheet name doesn't exist, append it
if 'sheet_1' not in df_dict:
df.to_excel(writer, sheet_name='sheet_1')
来源:试试这个:
from openpyxl import load_workbook
writer = pandas.ExcelWriter('target.xlsx', engine='openpyxl')
writer.book = load_workbook('target.xlsx')
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(excel_writer=writer, sheet_name="sheet_1")
writer.save()
您只需读取target.xlsx中存储的数据并将其存储在数据帧中即可。现在,使用
pandas
concat()
方法,您可以合并两个数据框(新数据框和旧数据框),最后将它们存储在同一个excel文件中
代码段:
import pandas as pd
old_df = pd.read_excel('target.xlsx')
frames = [old_df, new_df]
result = pd.concat(frames)
result.to_excel("target.xlsx", sheet_name="sheet_1", index=False)
我希望有帮助 可能的重复读取excel文件中的所有数据,用python将其合并,然后将其写回excel是否有意义?@Sosel,我的excel工作表还有其他几个与数据框无关的工作表。这可能会对您有所帮助:当我做更多excel和python工作时,MaxU的回答对我有用。这可能是最好的答案。
from openpyxl import load_workbook
writer = pandas.ExcelWriter('target.xlsx', engine='openpyxl')
writer.book = load_workbook('target.xlsx')
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(excel_writer=writer, sheet_name="sheet_1")
writer.save()
import pandas as pd
old_df = pd.read_excel('target.xlsx')
frames = [old_df, new_df]
result = pd.concat(frames)
result.to_excel("target.xlsx", sheet_name="sheet_1", index=False)