เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ใช้ merge_asof() วิเคราะห์ราคาหุ้น

สมมติว่าคุณมีข้อมูลราคาหุ้นที่บันทึกทุก 5 นาที แต่เนื่องจากความล่าช้าของเครือข่าย เวลาที่บันทึกจริงจึงไม่ตรงเป๊ะทุกครั้ง คุณดึงข้อมูลราคาหุ้นของธนาคาร 3 แห่ง ได้แก่ JP Morgan (JPM), Wells Fargo (WFC) และ Bank Of America (BAC) โดยต้องการเปรียบเทียบการเปลี่ยนแปลงราคาของอีกสองธนาคารกับ JP Morgan จึงต้องรวม log ทั้ง 3 ไฟล์เข้าด้วยกันเป็นตารางเดียว จากนั้นใช้เมธอด .diff() ของ pandas เพื่อคำนวณการเปลี่ยนแปลงราคาตามเวลา แล้วพล็อตกราฟเพื่อตรวจสอบผลการวิเคราะห์

ไฟล์ log ทั้งสามถูกโหลดมาให้แล้วในชื่อตาราง 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()
แก้ไขและรันโค้ด