始める無料で始める

merge_asof() を使った株価の分析

株式市場の価格フィードを記録しているとします。5分ごとに価格を追跡しようとしていますが、ネットワークの遅延により、実際の記録間隔はおおよそ5分となっています。JP Morgan(JPM)、Wells Fargo(WFC)、Bank Of America(BAC)の3つの銀行について価格ログを取得しました。他の2つの銀行の価格変動を JP Morgan と比較するために、3つのログを1つのテーブルに結合する必要があります。その後、pandas.diff() メソッドを使って時系列の価格変動を計算し、最終的にグラフを描画して分析結果を確認しましょう。

3つのログファイルは、jpmwellsbac というテーブルとしてすでに読み込まれています。

この演習はコースの一部です

pandas によるデータの結合

コースを見る

演習の手順

  • merge_asof() を使って jpm(左テーブル)と wellsdate_time 列で結合します。このとき、最も近い時刻の行が照合されるように設定し、suffixes=('', '_wells') を指定してください。結果を jpm_wells に保存します。
  • merge_asof() を使って jpm_wells(左テーブル)と bacdate_time 列で結合します。最も近い時刻の行が照合されるように設定し、suffixes=('_jpm', '_bac') を指定してください。結果を jpm_wells_bac に保存します。
  • close_jpm から close_wellsclose_bacprice_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()
コードを編集して実行