Utiliser merge_asof() pour étudier les stocks
Vous disposez d'un flux de cours de bourse que vous enregistrez. Vous tentez de suivre le cours toutes les cinq minutes. Toutefois, en raison d'une certaine latence du réseau, les cours que vous enregistrez sont relevés toutes les 5 minutes environ. Vous récupérez les historiques de cours de trois banques : JP Morgan (JPM), Wells Fargo (WFC) et Bank Of America (BAC). Vous souhaitez comparer l'évolution des prix des deux autres banques à celle de JP Morgan. Vous devrez donc fusionner ces trois tables en une seule. Ensuite, vous utiliserez la méthode pandas
.diff()
pour calculer la variation des cours dans le temps. Enfin, tracez les variations de cours afin de pouvoir réviser votre analyse.
Les trois fichiers journaux ont été chargés pour vous sous forme de tables nommées jpm
, wells
, et bac
.
Cet exercice fait partie du cours
Joindre des données avec pandas
Instructions
- Utilisez
merge_asof()
pour fusionnerjpm
(table de gauche) etwells
sur la colonnedate_time
, où les lignes avec les heures les plus proches correspondent, et avec lessuffixes=('', '_wells')
. Enregistrer dansjpm_wells
. - Utilisez
merge_asof()
pour fusionnerjpm_wells
(table de gauche) etbac
sur la colonnedate_time
, où les lignes avec les temps les plus proches sont appariées, et avecsuffixes=('_jpm', '_bac')
. Enregistrer dansjpm_wells_bac
. - Tracez les cours de clôture de
close_jpm
,close_wells
, etclose_bac
à partir deprice_diffs
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()