開始使用免費開始

自動載入並合併多個 Excel 工作表的資料

你現在要透過 for 迴圈,將 Excel 檔 listings.xlsx 中三個交易所的上市資訊自動化匯入流程。你將完成以下步驟:

  1. 使用 pd.ExcelFile() 物件的 sheet_names 屬性,取得所有工作表名稱。
  2. 建立一個空的清單。
  3. 撰寫一個 for 迴圈,走訪這些工作表名稱,將對應工作表的資料讀入變數中。需要的話,加入一個參考欄位。每次迭代都把該變數的內容附加到清單。
  4. 將清單中的 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(迭代變數)。
    • 將產生的 listing DataFrame 附加到 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()
編輯並執行程式碼