Effectuer un semi-join
Certaines des pistes qui ont généré le plus de revenus proviennent d'émissions télé ou d'autres contenus audio non musicaux. On vous fournit une table de factures qui inclut les articles les plus lucratifs. Vous avez aussi une table des pistes non musicales provenant du service de diffusion en continu. Dans cet exercice, vous ferez un semi-join pour trouver les pistes non musicales les plus génératrices de revenus.
Les tables non_mus_tcks, top_invoices et genres ont été chargées pour vous.
Cette activité fait partie du cours
Assembler des données avec pandas
Instructions de l’exercice
- Fusionnez
non_mus_tcksettop_invoicessurtidavec une jointure interne (inner join). Enregistrez le résultat danstracks_invoices. - Utilisez
.isin()pour extraire les lignes denon_mus_tcksoùtidse trouve dans la colonnetiddetracks_invoices. Enregistrez le résultat danstop_tracks. - Regroupez
top_trackspargidet comptez les lignes detid. Enregistrez le résultat danscnt_by_gid. - Fusionnez
cnt_by_gidavec la tablegenressurgidet affichez le résultat.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____)