使用pandas将已存在的Excel文件追加
使用pandas将已存在的Excel文件追加
我目前有这段代码,它运行得很完美。
它循环遍历文件夹中的Excel文件,
删除前两行,然后将它们保存为单独的Excel文件,
同时将循环中的文件保存为一个追加文件。
目前,每次运行代码时,追加的文件覆盖了现有文件。
我需要将新数据追加到已有的Excel表格('master_data.xlsx')的底部。
dfList = [] path = 'C:\\Test\\TestRawFile' newpath = 'C:\\Path\\To\\New\\Folder' for fn in os.listdir(path): # 获取文件的绝对路径 file = os.path.join(path, fn) if os.path.isfile(file): # 导入Excel文件,并将其命名为xlsx_file xlsx_file = pd.ExcelFile(file) # 查看Excel文件的工作表名称 xlsx_file.sheet_names # 将xlsx文件的数据工作表加载为数据框 df = xlsx_file.parse('Sheet1',header= None) df_NoHeader = df[2:] data = df_NoHeader # 保存单独的数据框 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文件导入为一个数据框,然后将索引与新追加的数据匹配,然后再保存出来。或者也许还有更简单的方法。任何帮助都将不胜感激。
问题原因:在向现有的Excel文件中追加数据时,如果数据量较大或者超过了csv文件的列数限制,直接将数据保存为csv文件再复制到新的Excel文件中可能会出现问题。
解决方法:使用Pandas库的to_csv函数,通过设置mode参数为'a'来实现向现有的Excel文件中追加数据的操作。具体步骤如下:
1. 将数据保存为csv文件:使用df.to_csv('filepath', mode='a', index=False, header=None)
代码将数据保存为csv文件。
2. 将csv文件复制到新的Excel文件中:将csv文件复制到新的Excel文件中,即可实现向现有的Excel文件中追加数据的操作。
需要注意的是,这种方法适用于数据量较小且列数不超过csv文件的列数限制的情况。如果数据量较大或者超过了csv文件的列数限制,可能需要使用其他方法来处理数据。