自動載入並合併多個 Excel 工作表的資料
你現在要透過 for 迴圈,將 Excel 檔 listings.xlsx 中三個交易所的上市資訊自動化匯入流程。你將完成以下步驟:
- 使用
pd.ExcelFile()物件的sheet_names屬性,取得所有工作表名稱。 - 建立一個空的清單。
- 撰寫一個 for 迴圈,走訪這些工作表名稱,將對應工作表的資料讀入變數中。需要的話,加入一個參考欄位。每次迭代都把該變數的內容附加到清單。
- 將清單中的 DataFrame 串接起來。
一如往常,若需要協助,可以回顧本章前面的練習,或查閱 pandas 說明文件。pandas 已以 pd 匯入。
本練習屬於課程
在 Python 中匯入與管理財務資料
練習說明
- 使用檔案
listings.xlsx建立pd.ExcelFile()物件,指定給變數xls。 - 從
xls的.sheet_names屬性取得工作表名稱,指定給exchanges。 - 建立一個空清單,指定給變數
listings。 - 使用 for 迴圈走訪
exchanges,以exchange為迭代變數。每次迭代:- 使用
pd.read_excel(),以xls為資料來源,exchange作為sheet_name參數,並以'n/a'作為na_values處理遺漏值。結果指定給listing。 - 在
listing中新增名為'Exchange'的欄位,值為變數exchange(迭代變數)。 - 將產生的
listingDataFrame 附加到listings。
- 使用
- 使用
pd.concat()串接listings的內容並指定給listing_data。 - 使用
.info()檢視listing_data的內容。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create the pd.ExcelFile() object
xls = ____
# Extract the sheet names from xls
exchanges = ____.____
# Create an empty list: listings
# Import the data
for exchange in exchanges:
listing = pd.____(____, sheet_name=____, na_values='n/a')
listing['Exchange'] = ____
listings.____(____)
# Concatenate the listings: listing_data
listing_data = pd.____(____)
# Inspect the results
listing_data.info()