Thực hiện semi join
Một số bản nhạc tạo ra doanh thu lớn nhất lại đến từ các chương trình TV hoặc là các tệp âm thanh phi âm nhạc khác. Bạn được cung cấp một bảng hóa đơn chứa các mặt hàng tạo doanh thu hàng đầu. Ngoài ra, bạn còn có một bảng liệt kê các bản nhạc phi âm nhạc từ dịch vụ streaming. Trong bài tập này, bạn sẽ dùng semi join để tìm các bản nhạc phi âm nhạc mang lại doanh thu cao nhất.
Các bảng non_mus_tcks, top_invoices và genres đã được nạp sẵn cho bạn.
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
- Gộp
non_mus_tcksvàtop_invoicestrêntidbằng inner join. Lưu kết quả vàotracks_invoices. - Dùng
.isin()để lọc các hàng củanon_mus_tcksnơitidnằm trong cộttidcủatracks_invoices. Lưu kết quả vàotop_tracks. - Nhóm
top_trackstheogidvà đếm số hàngtid. Lưu kết quả vàocnt_by_gid. - Gộp
cnt_by_gidvới bảnggenrestrêngidvà in kết quả.
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.
# 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(____)