Применение merge_asof() для анализа акций
Предположим, вы ведёте журнал цен на фондовом рынке и пытаетесь фиксировать котировки каждые пять минут. Однако из-за сетевых задержек записи поступают приблизительно раз в пять минут. Вы загружаете журналы цен трёх банков: JP Morgan (JPM), Wells Fargo (WFC) и Bank of America (BAC). Вас интересует, как изменения цен двух других банков соотносятся с JP Morgan. Для этого нужно объединить три журнала в одну таблицу, затем воспользоваться методом .diff() из pandas, чтобы вычислить изменение цен во времени, и наконец построить график для наглядного анализа.
Три файла журналов уже загружены в виде таблиц 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. - Постройте график цен закрытия
close_jpm,close_wellsиclose_bacиз таблицыprice_diffs.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()