時価総額上位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'].____().____()