Dùng merge_asof() để phân tích cổ phiếu
Bạn có một luồng giá thị trường chứng khoán do bạn ghi lại. Bạn cố gắng lấy giá mỗi năm phút, nhưng do độ trễ mạng, thời điểm ghi nhận thực tế chỉ xấp xỉ mỗi 5 phút. Bạn trích xuất nhật ký giá cho ba ngân hàng, JP Morgan (JPM), Wells Fargo (WFC), và Bank Of America (BAC). Bạn muốn biết mức thay đổi giá của hai ngân hàng còn lại so với JP Morgan như thế nào. Vì vậy, bạn sẽ cần gộp ba nhật ký này vào một bảng. Sau đó, bạn sẽ dùng phương thức .diff() của pandas để tính mức thay đổi giá theo thời gian. Cuối cùng, hãy vẽ biểu đồ các thay đổi giá để bạn có thể xem lại phân tích của mình.
Ba tệp nhật ký đã được nạp sẵn dưới dạng các bảng có tên jpm, wells, và bac.
Bài tập này là một phần của khóa học
Kết hợp dữ liệu với pandas
Hướng dẫn bài tập
- Dùng
merge_asof()để gộpjpm(bảng bên trái) vàwellsvới nhau theo cộtdate_time, trong đó các hàng có thời điểm gần nhất được ghép, và đặtsuffixes=('', '_wells'). Lưu vàojpm_wells. - Dùng
merge_asof()để gộpjpm_wells(bảng bên trái) vàbactheo cộtdate_time, trong đó các hàng có thời điểm gần nhất được ghép, và đặtsuffixes=('_jpm', '_bac'). Lưu vàojpm_wells_bac. - Vẽ biểu đồ giá đóng cửa của
close_jpm,close_wells, vàclose_bactừprice_diffs.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()