Programmierung von Semi-Joins
Einige der Tracks, mit denen die meisten Einnahmen erzielt wurden, stammen aus Fernsehserien oder sind andere Arten von Audioinhalten (also keine Musik). Du hast eine Tabelle mit Rechnungen erhalten, in denen die umsatzstärksten Posten aufgeführt sind. Außerdem hast du eine Tabelle mit den alternativen Audioinhalten des Streamingdienstes. In dieser Übung benutzt du einen Semi-Join, um die umsatzstärksten Audioinhalte (keine Musik) zu finden.
Die Tabellen non_mus_tcks, top_invoices und genres wurden für dich geladen.
Diese Übung ist Teil des Kurses
Daten mit pandas verknüpfen
Anleitung zur Übung
- Verknüpfe
non_mus_tcksundtop_invoicesanhand vontidmit einem inneren Join. Speichere das Ergebnis alstracks_invoices. - Verwende
.isin(), um die Zeilen vonnon_mus_tcksauszuwählen, in denentidin der Spaltetidvontracks_invoicessteht. Speichere das Ergebnis alstop_tracks. - Gruppiere
top_tracksnachgidund zähle dietid-Zeilen. Speichere das Ergebnis alscnt_by_gid. - Verknüpfe
cnt_by_gidmit der Tabellegenresanhand vongidund gib das Ergebnis aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____)