更新於 2023/12/28閱讀時間約 2 分鐘

如何用Python匯入大批Excel檔案

首先,假設我們要匯入大批Excel檔案,我們可以先將他們都放在一個資料夾中。

例如,我從保險業空開資料庫下載了52個csv檔,先把它們放在一個資料夾如下。



接著,我們可以載入套件pandas與os:

import pandas as pd
import os

接下來我們先建立檔案資料夾的位置的變數如下:

filePath = "C:/Users/domin/OneDrive/桌面/方格子/Python資料處理專欄/壽險財務業務指標_截至民國112年度第3季/"

再來,用os中的listdir建立指定資料夾內所有檔案名稱(含副檔名)之列表:

fileList = os.listdir(filePath)





接下來我們要將所有檔案都匯入Python中並各自成為一個DataFrame變數,所以我們要用迴圈的方法,將這些檔案一個一個匯入。

但因為這些檔案長相如下,可以看到檔案中各欄的上方都有我們不需要的資訊,所以在匯入這些csv檔時,要將最上方不要的橫列忽略。

最再將這些變數放入同一個List當中,這樣就方便我們用pandas的concat功能將這些檔案串起來。

所以,首先我們先寫一個List變數DataList用來裝等一下要放入的DataFrame變數。

DataList = []

接下來我們來寫迴圈,將檔案一個一個匯入,但同時要調整匯入的格式。

for i,n in zip(fileList,range(0,len(fileList))):    
globals()["D"+str(n)] = pd.DataFrame(pd.read_csv(f"{filePath}{i}",header=2))
DataList.append(globals()["D"+str(n)])

最後,我們用pandas的concat功能,將存在變數DataList中的這些DataFrame通通縱向的合併起來成為一個DataFrame。

在合併時,因為這些DataFrame都各自有原來的index,為了讓合併後的index能重新排序,所以可以讓ignore_index=True,這樣能忽視原有的index以重新排序index了。

DataFinal =pd.concat(DataList,ignore_index=True)













分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.