取得 3 家最大金融公司的資料
pd.MultiIndex() 物件每一列會有多個識別欄位。這讓你可以一次依多家公司的條件來取得資料。
現在把這項新技巧用在金融產業中規模最大的公司,抓取它們的股價。DataReader、date、pandas 作為 pd、matplotlib.pyplot 作為 plt 都已匯入,上一個練習的 listings DataFrame 也已載入。
本練習屬於課程
在 Python 中匯入與管理財務資料
練習說明
- 將
listings的索引設為'Stock Symbol',並指定給listings_ss。 - 使用
.loc[]篩選公司產業為'Finance'的列,並取出'Market Capitalization'欄位。套用.nlargest(),將市值最大的 3 家公司指定給top_3_companies。 - 將結果的索引轉為清單,指定給
top_3_tickers。 - 使用
date()將start設為 2015 年 1 月 1 日。 - 使用
date()將end設為 2020 年 4 月 1 日。 - 使用
DataReader(),自start起至end,從'iex'取得top_3_tickers的股價資料,指定給result。 - 套用
.stack()方法,將代號移入索引,把DataFrame轉為長格式。 - 從
data中選取'close',套用.unstack(),並用.info()檢視轉為寬格式後的 DataFrame。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Set Stock Symbol as the index
listings_ss = listings.____
# Get ticker of 3 largest finance companies
top_3_companies = listings_ss.loc[____].____(n=____)
# Convert index to list
top_3_tickers = top_3_companies.____.____()
# Set start date
start = ____
# Set end date
end = ____
# Import stock data
result = ____
# Apply stack method
data = ____
# Unstack and inspect result
data['close'].____().____()