Python 追加多个 Excel 文件

Python append multiple Excel files

我正在尝试将具有相同列的多个 Excel 文件合并为一个文件。如果我使用此代码 x.append(y, ignore_index = True) 它不起作用。在 for 循环的末尾,它 returns 只有 x 的 table。但是,如果我尝试 运行 x.append(y, ignore_index = True) 在单个代码块中,它可以很好地附加 y ,它在 for 循环之后仍在内存中。我正在使用 Juptyer 笔记本。

# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
 
# iterate over files in
# that directory
for idx,filename in enumerate(os.listdir(directory)):
    f = os.path.join(directory, filename)
    # checking if it is a file
    if os.path.isfile(f):
        print(f)
        print(idx)
        if idx == 0:
            x = pd.read_excel(f,engine="openpyxl")
        else:
            y = pd.read_excel(f,engine="openpyxl")
            x.append(y, ignore_index = True)

您可以创建数据帧列表,然后使用 pandas' concat 方法连接它们。

# import required module
import os as os
import pandas as pd
# assign directory
# directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\TimeLogs'
directory = 'C:\Users\Tomas\Documents\Python Scripts\csv\tmp'
 
# iterate over files in
# that directory
list_of_dataframes=[]
for idx,filename in enumerate(os.listdir(directory)):
    f = os.path.join(directory, filename)
    # checking if it is a file
    if os.path.isfile(f):
        print(f)
        list_of_dataframes.append(pd.read_excel(f,engine="openpyxl"))

merged_df=pd.concat(list_of_dataframes)

这样,您就不必检查索引 idx 是否等于 0。