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_tcks
undtop_invoices
anhand vontid
mit einem inneren Join. Speichere das Ergebnis alstracks_invoices
. - Verwende
.isin()
, um die Zeilen vonnon_mus_tcks
auszuwählen, in denentid
in der Spaltetid
vontracks_invoices
steht. Speichere das Ergebnis alstop_tracks
. - Gruppiere
top_tracks
nachgid
und zähle dietid
-Zeilen. Speichere das Ergebnis als . - Verknüpfe
cnt_by_gid
mit der Tabellegenres
anhand vongid
und gib das Ergebnis aus.
Interaktive Ü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(____)