合并日期不同的时间序列
美国的股票市场和债券市场会在不同的日子休市。例如,债券市场在哥伦布日(大约 10 月 12 日)和退伍军人节(大约 11 月 11 日)休市,而股票市场在这些日子仍然开市。要找出股票市场开市而债券市场休市的日期,一种方法是把两个日期索引都转换为集合,然后做集合差集。
pandas 的 .join() 方法可以方便地在两个市场都开市的日期上合并股票和债券的 DataFrame。
从 FRED 下载的股票价格和美国 10 年期国债收益率已经预先加载到 stocks 和 bonds 这两个 DataFrame 中。
本练习是课程的一部分
Python 中的时间序列分析
练习说明
- 将
stocks.index和bonds.index中的日期转换为集合。 - 计算股票集合减去债券集合的差集,得到股票市场有数据而债券市场没有数据的日期。
- 使用
.join()方法将两个 DataFrame 合并为新的 DataFramestocks_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 = ___