日付が異なる時系列の結合
米国の株式市場と債券市場は、休場日が異なります。たとえば、Columbus Day(10 月 12 日前後)と Veterans Day(11 月 11 日前後)は債券市場は休場ですが、株式市場は開いています。株式市場が開いていて債券市場が休場の日付を確認する 1 つの方法は、両方の日付インデックスを集合に変換し、集合の差を取ることです。
pandas の .join() メソッドは、両方の市場が開いている日付で株式と債券の DataFrame を結合するのに便利です。
FRED から取得した株価と米国 10 年国債利回りは、DataFrame stocks と bonds にあらかじめ読み込まれています。
この演習はコースの一部です
Pythonで学ぶ時系列解析
演習の手順
stocks.indexとbonds.indexの日付を集合に変換します。- 株式の集合から債券の集合を差し引き、株式市場にはデータがあるが債券市場にはない日付を求めます。
- 2 つの DataFrame を
.join()メソッド(構文はdf1.join(df2))で新しい DataFramestocks_and_bondsに結合します。- 日付の共通部分を得るには、引数
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 = ___