使用 merge_asof() 分析股票
您有一份自己记录的股票市场价格数据。您尝试每 5 分钟跟踪一次价格,但由于网络延迟,您记录的时间点大致为每 5 分钟。您提取了三家银行的价格日志:JP Morgan(JPM)、Wells Fargo(WFC)和 Bank Of America(BAC)。您想了解另外两家银行的价格变动与 JP Morgan 相比如何。因此,您需要将这三份日志合并为一张表。随后,您将使用 pandas 的 .diff() 方法计算随时间的价格变化。最后,绘制价格变化折线图,以便回顾您的分析。
三份日志文件已为您加载为名为 jpm、wells 和 bac 的表。
本练习是课程的一部分
使用 pandas 连接数据
练习说明
- 使用
merge_asof()将jpm(左表)与wells按date_time列合并,匹配时间最近的行,并设置suffixes=('', '_wells')。保存为jpm_wells。 - 使用
merge_asof()将jpm_wells(左表)与bac按date_time列合并,匹配时间最近的行,并设置suffixes=('_jpm', '_bac')。保存为jpm_wells_bac。 - 从
price_diffs中绘制close_jpm、close_wells和close_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()