使用Pythonpandas追加现有的Excel表格与新的数据框

我目前有这个代码。 它完美的作品。

它通过文件夹中的excel文件循环,删除前两行,然后将它们保存为单独的excel文件,并将文件作为附加文件保存在循环中。

目前,每次运行代码时,附加文件都会覆盖现有的文件。

我需要追加新的数据到已经存在的excel表单的底部('master_data.xlsx)

dfList = [] path = 'C:\\Test\\TestRawFile' newpath = 'C:\\Path\\To\\New\\Folder' for fn in os.listdir(path): # Absolute file path file = os.path.join(path, fn) if os.path.isfile(file): # Import the excel file and call it xlsx_file xlsx_file = pd.ExcelFile(file) # View the excel files sheet names xlsx_file.sheet_names # Load the xlsx files Data sheet as a dataframe df = xlsx_file.parse('Sheet1',header= None) df_NoHeader = df[2:] data = df_NoHeader # Save individual dataframe data.to_excel(os.path.join(newpath, fn)) dfList.append(data) appended_data = pd.concat(dfList) appended_data.to_excel(os.path.join(newpath, 'master_data.xlsx')) 

我认为这将是一个简单的任务,但我猜不是。 我想我需要把master_data.xlsx文件作为一个数据框,然后将索引和新添加的数据进行匹配,然后将其保存。 或者也许有一个更简单的方法。 任何帮助表示赞赏。

您可以将openpyxl引擎与startrow参数配合使用:

 In [48]: writer = pd.ExcelWriter('c:/temp/test.xlsx', engine='openpyxl') In [49]: df.to_excel(writer, index=False) In [50]: df.to_excel(writer, startrow=len(df)+2, index=False) In [51]: writer.save() 

C:/temp/test.xlsx:

在这里输入图像说明

PS您可能还想指定header=None如果您不想重复列名称…

更新:你可能也想检查这个解决scheme