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

การทำ Semi Join

แทร็กที่สร้างรายได้สูงสุดบางส่วนมาจากรายการโทรทัศน์หรือเป็นไฟล์เสียงที่ไม่ใช่ดนตรี คุณมีตารางใบแจ้งหนี้ที่รวมรายการสร้างรายได้สูงสุด และยังมีตารางแทร็กที่ไม่ใช่ดนตรีจากบริการสตรีมมิ่งอีกด้วย ในแบบฝึกหัดนี้ จะใช้ semi join เพื่อค้นหาแทร็กที่ไม่ใช่ดนตรีซึ่งสร้างรายได้สูงสุด

ตาราง non_mus_tcks, top_invoices และ genres ถูกโหลดไว้ให้แล้ว

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

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

ดูคอร์ส

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

  • Merge non_mus_tcks และ top_invoices บน tid โดยใช้ inner join แล้วบันทึกผลลัพธ์เป็น tracks_invoices
  • ใช้ .isin() เพื่อกรองแถวใน non_mus_tcks ที่ tid ปรากฏอยู่ในคอลัมน์ tid ของ tracks_invoices แล้วบันทึกผลลัพธ์เป็น top_tracks
  • จัดกลุ่ม top_tracks ตาม gid และนับจำนวนแถวของ tid แล้วบันทึกผลลัพธ์เป็น cnt_by_gid
  • Merge cnt_by_gid กับตาราง genres บน gid แล้วแสดงผลลัพธ์

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

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

# Merge the non_mus_tcks and top_invoices tables on tid
tracks_invoices = ____.merge(____)

# Use .isin() to subset non_mus_tcks to rows with tid in tracks_invoices
top_tracks = _____[non_mus_tcks['tid'].isin(____)]

# Group the top_tracks by gid and count the tid rows
cnt_by_gid = top_tracks.groupby(['gid'], as_index=False).agg({'tid':____})

# Merge the genres table to cnt_by_gid on gid and print
print(____)
แก้ไขและรันโค้ด