merge_asof() を使った株価の分析
株式市場の価格フィードを記録しているとします。5分ごとに価格を追跡しようとしていますが、ネットワークの遅延により、実際の記録間隔はおおよそ5分となっています。JP Morgan(JPM)、Wells Fargo(WFC)、Bank Of America(BAC)の3つの銀行について価格ログを取得しました。他の2つの銀行の価格変動を JP Morgan と比較するために、3つのログを1つのテーブルに結合する必要があります。その後、pandas の .diff() メソッドを使って時系列の価格変動を計算し、最終的にグラフを描画して分析結果を確認しましょう。
3つのログファイルは、jpm、wells、bac というテーブルとしてすでに読み込まれています。
この演習はコースの一部です
pandas によるデータの結合
演習の手順
merge_asof()を使ってjpm(左テーブル)とwellsをdate_time列で結合します。このとき、最も近い時刻の行が照合されるように設定し、suffixes=('', '_wells')を指定してください。結果をjpm_wellsに保存します。merge_asof()を使ってjpm_wells(左テーブル)とbacをdate_time列で結合します。最も近い時刻の行が照合されるように設定し、suffixes=('_jpm', '_bac')を指定してください。結果をjpm_wells_bacに保存します。close_jpmからclose_wells、close_bac、price_diffsの終値をグラフで描画します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Use merge_asof() to merge jpm and wells
jpm_wells = ____
# Use merge_asof() to merge jpm_wells and bac
jpm_wells_bac = ____
# Compute price diff
price_diffs = jpm_wells_bac.diff()
# Plot the price diff of the close of jpm, wells and bac only
price_diffs.plot(y=[____, ____, ____])
plt.show()