簡體   English   中英

Python append 多個 Excel 文件

[英]Python append multiple Excel files

我正在嘗試將具有相同列的 append 多個 Excel 文件合二為一。 如果我使用此代碼x.append(y, ignore_index = True)它不起作用。 在 for 循環的末尾,它只返回 x 的表。 但是,如果我嘗試在單個代碼塊中運行x.append(y, ignore_index = True) ,它可以正常工作到 append y,它仍在 for 循環后的 memory 中。 我正在使用 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM