groupby regroupe les lignes d'un DataFrame par clé pour agréger, et transform calcule une valeur par groupe en la renvoyant avec le même nombre de lignes que l'original : chaque ligne reçoit le résultat de son groupe. Il sert à ajouter une colonne de part, de total de groupe ou de rang sans perdre les lignes.
Exemple
df['part'] = df['ventes'] / df.groupby('canal')['ventes'].transform('sum')