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
<Kurs>Daten zusammenführen mit pandas</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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(____)