合併日期不同的時間序列
美國的股票與債券市場在不同日子休市。例如,雖然債券市場在哥倫布日(約 10 月 12 日)與退伍軍人節(約 11 月 11 日)休市,但股票市場在這兩天照常開市。若要找出股票市場開市而債券市場休市的日期,一個方式是把兩者的日期索引轉成集合,然後做集合差集。
pandas 的 .join() 方法可方便地在兩個市場皆開市的日期上,合併股票與債券的 DataFrame。
從 FRED 下載的股票價格與 10 年期美國公債殖利率已預先載入為 stocks 與 bonds 兩個 DataFrame。
本練習屬於課程
Python 中的時間序列分析
練習說明
- 將
stocks.index與bonds.index的日期轉成集合(set)。 - 以股票集合減去債券集合,找出只有股票市場有資料、而債券市場沒有的那些日期。
- 使用
.join()方法將兩個 DataFrame 合併成新的stocks_and_bonds,語法為df1.join(df2)。- 若要取得日期的交集,請使用參數
how='inner'。
- 若要取得日期的交集,請使用參數
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import pandas
import pandas as pd
# Convert the stock index and bond index into sets
set_stock_dates = set(stocks.index)
set_bond_dates = set(___)
# Take the difference between the sets and print
print(set_stock_dates - ___)
# Merge stocks and bonds DataFrames using join()
stocks_and_bonds = ___