開始使用免費開始

使用 merge_asof() 研究股票

你手上有一個股價資訊來源,嘗試每 5 分鐘記錄一次價格。不過因為網路延遲,實際記錄時間大約是每 5 分鐘。你擷取了三家銀行的價格紀錄:JP Morgan(JPM)、Wells Fargo(WFC)以及 Bank Of America(BAC)。你想比較另外兩家銀行的價格變化與 JP Morgan 的差異。因此,你需要把這三份紀錄合併成一個資料表。接著,你會使用 pandas.diff() 方法計算隨時間的價格變化。最後,把價格變化繪圖,以便檢視你的分析。

三個紀錄檔已為你載入為 jpmwellsbac 三個資料表。

本練習屬於課程

使用 pandas 進行資料表連接

檢視課程

練習說明

  • 使用 merge_asof(),以 jpm(左表)與 wellsdate_time 欄位上進行合併,將時間最「接近」的列配對,並設定 suffixes=('', '_wells')。將結果存為 jpm_wells
  • 使用 merge_asof(),以 jpm_wells(左表)與 bacdate_time 欄位上進行合併,將時間最接近的列配對,並設定 suffixes=('_jpm', '_bac')。將結果存為 jpm_wells_bac
  • price_diffs 繪製 close_jpmclose_wellsclose_bac 的收盤價。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼