การทำ 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(____)