如何在Python中使用pandas添加现有的Excel表中的列

import pandas as pd from pandas import ExcelWriter trans=pd.read_csv('HMIS-DICR-2011-12-Manipur-Bishnupur.csv') df=trans[["April 10-11","May 10-11","June 10-11","July 10-11","August 10-11","September 10-11","October 10-11","November 10-11","December 10-11","January 10-11","February 10-11","March 10-11","April 11-12","May 11-12","June 11-12","July 11-12","August 11-12","September 11-12","October 11-12","November 11-12","December 11-12","January 11-12","February 11-12","March 11-12"]] writer1 = ExcelWriter('manipur1.xlsx') df.to_excel(writer1,'Sheet1',index=False) writer1.save() 

该代码成功地将数据写入到工作表1中,但是如何将来自不同excel文件(下面提及)的另一个数据框(df)的数据附加到现有工作表(工作表1)“manipur1”excel文件

例如:我的数据框是这样的:

  trans=pd.read_csv('HMIS-DICR-2013-2014-Manipur-Bishnupur.csv') df=trans[["April 12-13","May 12-13","June 12-13","July 12-13","August 12-13","September 12-13","October 12-13","November 12-13","December 12-13","January 12-13","February 12-13","March 12-13","April 13-14","May 13-14","June 13-14","July 13-14","August 13-14","September 13-14","October 13-14","November 13-14","December 13-14","January 13-14","February 13-14","March 13-14"]] 

您只能将新数据追加到现有的Excel文件中,同时将现有数据加载到pandas中,追加新数据并再次保存拼接的dataframe。

为了保留应该保持不变的现有图纸,您需要遍历整个工作簿并处理每张图纸。 在to_update字典中定义要更改和附加的to_update

 # get data to be appended trans=pd.read_csv('HMIS-DICR-2011-12-Manipur-Bishnupur.csv') df_append = trans[["April 12-13","May 12-13","June 12-13","July 12-13","August 12-13","September 12-13","October 12-13","November 12-13","December 12-13","January 12-13","February 12-13","March 12-13","April 13-14","May 13-14","June 13-14","July 13-14","August 13-14","September 13-14","October 13-14","November 13-14","December 13-14","January 13-14","February 13-14","March 13-14"]] # define what sheets to update to_update = {"Sheet1": df_append} # load existing data file_name = 'manipur1.xlsx' excel_reader = pd.ExcelFile(file_name) # write and update excel_writer = pd.ExcelWriter(file_name) for sheet in excel_reader.sheet_names: sheet_df = excel_reader.parse(sheet) append_df = to_update.get(sheet) if append_df is not None: sheet_df = pd.concat([sheet_df, append_df], axis=1) sheet_df.to_excel(excel_writer, sheet, index=False) excel_writer.save() 

但是,现有的Excel中的任何布局/格式都将丢失。 如果你想保留格式,你可以使用openpyxl ,但这更复杂。