Een semi-join uitvoeren
Sommige tracks die de meeste omzet genereren, komen uit tv-shows of zijn andere niet-muzikale audio. Je hebt een tabel met facturen gekregen waarin de items met de hoogste omzet staan. Daarnaast is er een tabel met niet-muzikale tracks van de streamingdienst. In deze oefening gebruik je een semi-join om de niet-muzikale tracks met de hoogste omzet te vinden.
De tabellen non_mus_tcks, top_invoices en genres zijn alvast voor je ingeladen.
Deze oefening maakt deel uit van de cursus
Data samenvoegen met pandas
Oefeninstructies
- Merge
non_mus_tcksentop_invoicesoptidmet een inner join. Sla het resultaat op alstracks_invoices. - Gebruik
.isin()om de rijen vannon_mus_tckste subsetten waartidvoorkomt in de kolomtidvantracks_invoices. Sla het resultaat op alstop_tracks. - Groepeer
top_tracksopgiden tel detid-rijen. Sla het resultaat op incnt_by_gid. - Merge
cnt_by_gidmet de tabelgenresopgiden print het resultaat.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)