使用pandas将已存在的Excel文件追加

8 浏览
0 Comments

使用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文件导入为一个数据框,然后将索引与新追加的数据匹配,然后再保存出来。或者也许还有更简单的方法。任何帮助都将不胜感激。

0
0 Comments

问题原因:在向现有的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文件的列数限制,可能需要使用其他方法来处理数据。

0