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

การใช้ .melt() เพื่อเปรียบเทียบประสิทธิภาพของหุ้นและพันธบัตร

เป็นที่รู้กันดีว่าราคาพันธบัตรมีความสัมพันธ์แบบผกผันกับราคาหุ้น ในแบบฝึกหัดสุดท้ายนี้ เราจะทบทวนหัวข้อต่าง ๆ ในบทนี้เพื่อยืนยันความสัมพันธ์ดังกล่าว โดยมีตารางแสดงเปอร์เซ็นต์การเปลี่ยนแปลงของราคาพันธบัตรรัฐบาลสหรัฐอายุ 10 ปีในรูปแบบ wide format ซึ่งแต่ละปีมีคอลัมน์แยกต่างหาก จึงต้องใช้เมธอด .melt() เพื่อปรับรูปร่างตารางนี้

นอกจากนี้ จะใช้เมธอด .query() เพื่อกรองข้อมูลที่ไม่จำเป็นออก แล้วรวมตารางนี้กับตารางเปอร์เซ็นต์การเปลี่ยนแปลงของดัชนีหุ้น Dow Jones Industrial จากนั้นจึงพล็อตข้อมูล

ตาราง ten_yr และ dji ถูกโหลดไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การรวมข้อมูลด้วย pandas

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ .melt() กับ ten_yr เพื่อ unpivot ทุกคอลัมน์ยกเว้นคอลัมน์ metric โดยตั้งค่า var_name='date' และ value_name='close' แล้วบันทึกผลลัพธ์ไว้ในตัวแปร bond_perc
  • ใช้เมธอด .query() เลือกเฉพาะแถวที่ metric มีค่าเป็น close แล้วบันทึกไว้ในตัวแปร bond_perc_close
  • ใช้ merge_ordered() เพื่อรวม dji (ตารางซ้าย) กับ bond_perc_close โดยใช้คอลัมน์ date แบบ inner join และกำหนด suffixes เป็น ('_dow', '_bond') แล้วบันทึกผลลัพธ์ไว้ในตัวแปร dow_bond
  • ใช้ dow_bond พล็อตเฉพาะค่าของ Dow และพันธบัตร

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Use melt on ten_yr, unpivot everything besides the metric column
bond_perc = ____

# Use query on bond_perc to select only the rows where metric=close
bond_perc_close = ____

# Merge (ordered) dji and bond_perc_close on date with an inner join
dow_bond = ____


# Plot only the close_dow and close_bond columns
dow_bond.plot(____, x='date', rot=90)
plt.show()
แก้ไขและรันโค้ด