最大のConsumer Services企業のティッカーを取得する
条件式でデータをインデックス指定する代わりに、.loc[row_selector, column_selector] で特定の値に基づいてフィルタリングすることもできます。さらに、.set_index() で一意の値を持つ特定の列をDataFrameのインデックスに設定できます。また、.idxmax() を使うと最大値のインデックスを返せます。
この演習では、これらの選択方法を使って、3つの取引所のいずれかに上場しているConsumer Services分野で最も価値の高い企業を見つけ、そのティッカーで株価の推移をプロットします。DataReader、date、pandas は pd、matplotlib.pyplot は plt としてインポート済みで、前の演習からの listings DataFrame も読み込まれています。
この演習はコースの一部です
Pythonでの金融データのインポートと管理
演習の手順
.set_index()を使って、listingsのインデックスを'Stock Symbol'列に設定し、listings_ssに代入します。.loc[]を使い、'Sector'が'Consumer Services'に等しい行をフィルタし、列'Market Capitalization'を選択して.idxmax()を適用し、最大のConsumer Services企業のティッカーをtickerに代入します。date()を使い、startを 2015年1月1日に設定します。DataReader()を使って、start以降のtickerの株価データを'yahoo'から取得し、dataに保存します。data内の'close'と'volume'をプロットし、引数としてsecondary_y='volume'とtitle=tickerを指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set the index of listings to Stock Symbol
listings_ss = listings.____(____)
# Get ticker of the largest Consumer Services company
ticker = listings_ss.____[____, ____].____()
# Set the start date
start = ____
# Import the stock data
data = ____
# Plot close and volume
data[['close', 'volume']].plot(secondary_y=____, title=____)
# Show the plot
plt.show()